{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c2b7da21-f761-4b32-9b9e-f8985e2f8dc9",
   "metadata": {},
   "source": [
    "Ch25\n",
    "# SymPy代数\n",
    "Book_1《编程不难》 | 鸢尾花书：从加减乘除到机器学习  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "80988907-c48f-4d3e-8f35-3fa26deb14bd",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入包\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sympy import init_printing\n",
    "init_printing(\"mathjax\")\n",
    "# 这两句的作用是将 SymPy 库中的数学符号以美观的形式打印出来。\n",
    "# from sympy import init_printing 将 init_printing() 函数从 SymPy 库中导入。\n",
    "# 该函数的作用是设置 SymPy 打印输出的格式。\n",
    "\n",
    "# init_printing(\"mathjax\") 将打印输出的格式设置为 MathJax 格式，\n",
    "# MathJax 是一个用于在 Web 上呈现数学公式的 JavaScript 引擎。\n",
    "# 这样，SymPy 就可以在 Jupyter notebook 或 IPython 控制台中以 LaTeX 格式打印出数学符号，使其更易于阅读和理解。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b37d20f4-6ebc-4e7a-9dbd-b7b175881e2c",
   "metadata": {},
   "source": [
    "## 定义符号变量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "51ab495d-f96b-4f57-807a-e0145fa142de",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import symbols\n",
    "# 从sympy中导入symbols"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ced6d56f-e5b3-4250-ab32-7f1397fa3191",
   "metadata": {},
   "outputs": [],
   "source": [
    "x, y = symbols('x y')\n",
    "# 用sympy.symbols (简做symbols) 定义x和y两个符号变量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4647e8d7-3dc8-44da-8975-f2a7a03157c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 定义解析式：\n",
    "f1 = x + y\n",
    "f1 # 打印结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a9627e78-4bcf-4455-b495-1f81771ce4aa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFYAAAAUCAYAAAAXxsqQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAC40lEQVR4nO3YX4jlYxzH8dfYufKnXG7yp1DWjZ0LtatYSYtIu/lzYbOMSGSLZWiJ/fgWIUtbSJtkN7nRtkVucLGKWWnkz5a4IKu2yG7YEqJ2XPzOjNmzM+bMtHPOmdp3nZ7f73mevr/P+Zzn93y/zxkYHx93nGPPYK8FLDaq6gZciiEsxyl4I8nNU+cdN3buPKox9Hfsx7LpJi24sVU1jNdwWZIPFvp5s3EM9GzUGPqtZuXunm7SEcZW1XtYjeuT7JrSP9AScyueSbJpHoLmRFU9gC0YSfLcNOPnYS8+SbJqofVMkGTSyKqacd4JbfcP4jCeqKolU/q3aEx9pRumtvio1a6cYfwFLMGG7siZG0cYm+RLvI7zsR6q6hHcjzdxVxe1fYY/saJ9oKpu1LxZLyXZ20VNHdO+Ymk257/weFVtwJN4F+uTHO6WsCT/YAxnVNVpE/1VdRKex8/Y3C09c+Wo5JVkf1VtxSbN67YH1yX5e7ZgVbUPZ80wvHuaPWlHkuH/CTmKVZrtYGLP34zTcVuSQ13W0zEzVQUHplzfnuSPDuNtxaltfUNYgx3Y1zb2xSzxRlvtCuyqqmWarPxxK1639XTMUcZW1U2aZPUTluJe3N1JsCRbp4k3rPki2+dR3uzBuP8S2IuahHVPklmPjAugp2OO2GOr6mrNL/kVLsA3uKO1UrpOkl/xNS6sqnW4HNuSfN4LPXNh0tiquhg7NcXvFUkO4DHNqn66N/LQlF0nYhsOapJr3zMIVbUc7+AQVif5EZLsrKpPsaaqLknyYQ80juJOnIyNSX7pgYZJqmot1rZul7bai6pqe+v6YJKRwao6V1NOjePKJN+1xXoY7+NZMxfrC8n3rXYMr/bg+e0MaQ5LUzm79YEfMDLQ738bVtXbuAYrk4z1Wk+nTHdA6BtaCetavLyYTKUP/zasqjOxDufgFk2F8lBPRc2DvjMWV+Ep/Ia3cN8cDih9Q9/vsYuVfwGdm/RX77jtsgAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y + 1$"
      ],
      "text/plain": [
       "x + y + 1"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1 + 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "47ef03d9-b5ec-47b6-bc86-f1687320646f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAAAXCAYAAAC2/DnWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAADA0lEQVR4nO3YX6hUVRTH8c+9+lT20pNEpZBgL9Gjl0ixQosiEqOHRIuIoD9C/yy8Ua4WFBVqXCyMiKgIX0Kkfy9FvYRacSNKMgwSfZCMDEmQ/uf0cGbqOHeGuTPnzL0YfWHYw95rr/Pbi73XPuuMNBoN/zOVuVUmZ+Y4VmMxfsMnGI+Ir2rQNjSmo3u04jOWYzsuw5X4Ex9k5rkV/Q6b5XroHqnzKGXmPJzAqoh4pzbHQ6aT7qo7pp1zmj6P1+x32EzRXXdgJvCF4syeSUxo010p+ZbJzM1YhqUR8VddfodNN91z24zexwrcGBG7Sv0jeAW34pmI2Ng2byvW4oqI+HZoq+hCZj6ILdgQEVs7jC/GPnwaEctK/V11tx+lh3AKT2TmnFL/FkVQXuoQlG0l518PuriK7G62Y13Gn8McrG919NJ92o6JiC8z83VFENbh1cx8BA/gDdxZts/M7U3nq3A8M+c3h05GxMm+llaNz/ELlrQPZOZNilOwLSL2Nft66u6UfB/Fr3g8M9fjSbyHdRFxqs32LkVG/xBHS78Ng6+xfyLiD0zigsw8r9WfmWfjWfyATaUpPXVPSb4RcSQzJ7BRsQX3YnVE/N7BdmSQhWTmYSzoY8qOiFjbw2aPIomOoZUfN+F83BYRJ1qG09Hd7VY6Vvp/e0T83MtRnxxU7Mrp8t00bPY02yXYlZkX4358jNf6k9chMJl5syLZfo/5uFex9WojIq6q01+TvWj4NwE/r0i490RE36/3p5UEmXkt3sQ3ihriIyzCJRFxoJLsGSAz92Mh7sAOvBARdw/i65/km5mXYyeOYGVEHMNjil31dEXNM8VunIUX8aPiIhmIUcjMS/GuopBaERFHISJ24jPckJlLK4qeCVp5Zp7iM8LANdtoZi5SXMcNXB0RB9tsxpvt5kEfMoMcaraTeLmKo1o/O8w2mfk2rsNYRExW8VV3dT1rZOYaXK9IuJWCQo3V9WyQmRdiDS7CLdiPh+vwfUYHBtfgKfyEt3BfXS+j/6kcUyd/A7unHDYU0B9yAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle x^{2} - y^{2}$"
      ],
      "text/plain": [
       " 2    2\n",
       "x  - y "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f2 = x**2 - y**2\n",
    "f2 # 打印结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8d2c6e11-4194-4869-b0a6-f8f77d54303e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJwAAAAXCAYAAAD+zyZWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAEo0lEQVR4nO2aWWxUZRTHf7V9UkyMvhDXuCRoosKDCWgEUYIajYIgDxCQGo3RQLBIVWqAv3+jEQNo3VCChhLjCwEScYm4oaGgWBdEQGMg1gSFQIPy4sJWH75LmU7vTDszd3qnZH7JzZ35tjnn9PR853z31nR2dlKlSn9RV8pk203ABGAI8B/wFdAkaXsCslXphYFo/9NKnD8aWApcB9wEHAU+sX12ietW6RujGWD2r0lyS7U9CDgEjJf0bmILV+kTA8H+JW2pMZxJiJoHE143L7bPAe4CbgeuAs4DDgM/AiuAFZKO96dMKZGK/QFs3w3cAAwDhkayvC1paua4UrfUbJqBrYRcoj+ZBCwHhgNbIjnWAFcCbwCrbNf0s0xp0Ew69geYB8wkONzvuQYlFuFsLwJGASMlHStifj0hGt0o6fMCp/8C3Am8nxnJbD8BfA1MJCTXawqVa6CQsv0BZgN7gF2ESLchblA3h7P9ETAWmChpbUZ7TSTMdOA5SXOz5i0BpkbC7ipC2JKQ9FmO9n22XweeISTYXQ5XrK7lwvYcYDHQKGlJTP8QYBuwRdKorL5U7Q8gqcvBbOccl72lPgocB562XZvRvpjwB1ge42wvcVLZnSXKXQ6ORPejWe0F61pmWqP7iBz9LwO1hG2riwFg/250czhJPwBvAVcA06BrW3oEWAU8mDne9lKgHpgMHLQ9OLoGlV/03rFdB9wTff0ws69QXfuB74B/CHloN2xPIkTjVyVty2ivaPvHEVc0zAP+BZ60PZOwHa0HpsVUeg8RqpFPgb0ZV2PZJC6MhYTC4QNJ62P6C9G1rEg6ArQBF9g+90S77TOA54H9wIKsaZVu/x70KBok7bHdDMwlhPHNwARJh2PGFlX52W4HLsrRvSEmB1gpqb7A35gFzAF+Jopg2RSia8z67eTWIY4eRwQxbCIk/iOAE3nlAuB84F5Jh7Lkr1j75yJXlXog4/N9kv5O4scyaAbOymobBowDVgLtWX1bC1nc9gzgRWAnMEZSvnOpYnXdTYiOfeWPPozZFN2HA2ttX06o/r4k2CUpmimj/fPRw+FsTyYkzvuAwcDDhNCdGJKaY363nqBwS5Fl+Yl1GoAXgO0EZ9ufZ2zRukoaU6yMedgMdHKycHiFUCjMkJTYI6Fy2r83uuVwtm8jePgO4GrCdnR/9J9W8dh+nOBsWwlVWz5nqzhdJf0J/ARcY3sKMAZYJun7tGRKmi6Hs309sJpweHezpAPAfEIUXJiOeH3H9nyCnN8SIltHnrGVrGsrcDqwDOggFDanDHUAtocC7xEe/I6VtBdA0mrb3wDjbI+UtDE9UXNjezrwFHAM2AjMikl82yW1DABdNwEPAIOA2b3knxWD7fHA+Ojr4Oh+re2W6HOHpMY625cRjgI6gVsk7c5aqwn4GFhE7kPJtLk4utcCDTnGfGG7lcrX9dfo3ga8mZIMxTCMcGCeySXRBfAb0Jjo60lVSsf2OsJbLyMktaUtT9Ik/bZIlRKICoU7gNdORWeD5N+Hq1Igti8EpgCXEh7D7QAeS1WoMlJ1uPS5FXgW+At4B2gow0F7xVDN4ar0K/8DTowFVFaA3hUAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle x^{2} + 2 x - y^{2} + 1$"
      ],
      "text/plain": [
       " 2          2    \n",
       "x  + 2⋅x - y  + 1"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f2 + 2*x + 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "5e3c8178-941d-467a-ab75-0d878ef6bc98",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGIAAAAXCAYAAADwSpp8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAEQklEQVR4nO2ZfYhUVRjGf6OBmWugUYr0QVS6RRRF4NKH7CZbUURhSSjaB5X0IURl4Yr59EDahxpLpSIRERFBmGBFbFn/aaUbmfahUVaQZGWuGH1Z5vTHuYN3Z+/Mzuw9qyP4wHBn3nPP77znnjnnfc+5hWKxyFEdfh0TC2R7GDBO0ncDrN8BTAEmAPuAj4AOSZ/H8nGwVKvvtpslbctiDInozzzg5xz1W4HlwMXA5cB+4D3bo/O7NuhqpTbfh9uekQUoxFiabN8DfCupKzfsILMJ2AtcL+nNWNxDoWq+214EvCrps7Q994ywPRK4KeYgJBpJ8K8nMvdQqJrvK4CF5cYYS9P9wNsROOXqBD4lrLdHmjqp4LukH4Bhti9N23MNhO0CcCewNg8ng7sYmARMlfRfTPZgq0bf1wKz0oZeWZPtd4F24AZJq1P2AvAicAvwpKS5SdEFwBggM7MZAA/bS4EZQJukb/rpd3TZfhBYAsyRtDSjfAKwBdggaVJZWa2+bwI6bBckFaHvjHgIOAA8Zntoyr6E8NCeTz80QpbwlaR/KjRYF8/2M6mOfFmlI4Opdcm1pUL5s8BQYHbaWKfvm4HRQHPJ0GsgJG0GXgbOBmYmDcwDHgBeA+4qA44HdldqrR6e7eXArcA0oMf22OTT1E+nYusT4C9gYnmB7amEGb5M0paUvV7fe4AicFbJkBUj5gN/A4/ank2I8O8AMyUdKLt3DPBbPx2rlXc3Idt4H9iZ+szphx9Vkv4FuoFTbI8r2W2PAJ4GfgEWlFWry/ek338AJ5ZsfXbWknbY7gTmEqbhB8CUCsvPsQmwWsdq4kkqVONUk+3vgdPqqPKKpMyNVaL1hIDbApRi2wLgZOA2SXvTNw/Q99+B4aUflY44dqW+3y7pzwr37QOOq6HRWnkD1XbCrKtVP/ZTvj65TgRW224mpOkfAi/V716mRpDyuc9A2J5GCKY/AWOB+whTL0u/Etb/iqqTNyBJmhyTR5i1RQ4G7OcIAfreUpaTR0nW2ER4fkBZjLB9NWHEvwDOA7YBdyT/iCx9DYyq0mC9vIaQpD3AVuAi29OBycBKSZsiNTEKKBCeH5AaiGSntwrYAVwhaRfwCGHWPFEBuAFotp01swbCayStIyy7Kwn/3PkR2ecSzqK2lgxDAGyfD7yVFLZL2gkgaRXwMXCd7csygBsJWdM5aWMOXiOpFCeaCEfaMc+8LgS60lnjENtnEtLJInClpO1llTqS6+JymqT9hKWnrWTLw2swld6rdAMvRGa3lTNzH4PbPgF4XVJrLlCDyfYbwDVAi6TuiNyTCOlze9qe+/RV0m6gy/YleVmNoiRAXwusiDkIiWYRYmUvxXpV+hSwyPbGZGd6xMn2qcB04AzgZkKm93DkNsYDeyT1OR6P8qo0CToLgdNj8A6TrgIeB24E1hAyvdgbz+MlLcsqiPKq9Kjy63/vd9NvEuz5MQAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x \\left(x^{2} - y^{2}\\right)$"
      ],
      "text/plain": [
       "  ⎛ 2    2⎞\n",
       "x⋅⎝x  - y ⎠"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f2 * x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3b266150-6c88-44e8-8fc1-0c499ca0da26",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF8AAAAXCAYAAABtR5P0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAEoElEQVR4nO2Ze4hVVRTGfzcDU8dAoRSpJCqdIpIiUKzEB6YYUVhaipZRSZkQlYUj5tcHapYaWqlIREhFICZUEpPaf2r5IFMrjbIHSVbmiNHLMqc/9r5w5sy5M3PvPTOO4AeHc9n7rG+tve7ea629d6GxsZGzOD04t1SH7a5AP0nfVkJsuw4YDwwETgAfA3WSPquEryPRFttt10o6UI2ec1romwP8XAX3cGAlMBQYCZwENtvuXQVnR2E4rdvezfaUapQUssKO7RnAN5LqqyFPcdYAx4HbJb2XF29HoJTtthcCb0nalyEzAXgDGCDp+9i2HBgHDJV0pNnMt90TuCtPx0f0JKy0hpx5OwKlbF8FLCghsw7YB8wFsD0LuBsYK+kIZIedx4D3czA4jWXAp4T4eaZhGRm2S/oB6Gr7xrSApEZC6J5mezYwD7hF0sHiN02cb7sAPAhsytNy24uBYcAESf/lyd3eaIPtm4DpWbKSNgI7gfnAREm7kv3paudaoA/QrCKxvREYDdwhaX2ivQC8BtwLPCdpdkpuKTAFGCHp6xbG2S6w/QSwBJglaWlG/0BgL7Bd0rBUX1ts3w3U2S7E2Z6UHwkMIkzyX9KC6bAzFPhS0j8ZSp4ETgHzbXdJtC8hOP6VDMe/mDD+ixLGtze2xPeQEv0vAV2AmcnGMmzfA/QGalPyg4D1wAzgXTJyQ9r5A4CjWRok7QFeB64EpkYFc4DHgbXAQynlK4FpwCSgwXbf+NS0MJD2wCfAX8DgdEesSEYDKyTtTbSXY3sD0AhckZDvT8ibiyWtIcT7MbZvSgqmnd8H+K2FgcwF/gaesT2T8G9+AEyVdCr17cOEKuFD4HDimdUCf+6Q9C8h7l5su1+x3XYP4AVCOJiXEmuz7XHcfwAXRN7eQD2wQdKC+M1eQvXzbFI2HfPPi0SlBnLI9jJgNmG5bgPGZ4UpSYVSPC3B9ndA/zJE3pTU2mZnKyFpDiGEAggOvwi4T9Lx5McV2P470C3KNhCiQxNImphuSzv/BNC9FUVHEr/vl/RneXa2ioOE1dVW/NiGb7bG92Bgve1aQkn9EbCmPPMy0YPybAaaO/9XMv61ImxPIiTYn4C+wKOEJZobJI3Kky9iGyEuF5Puy4Qk+0i6QikXsdqrIfiuLKRj/ldArxJKxhFmyefANcAB4IE4izo1JB0D9gPX254MjAJWS9qdA30voEDwXVlIO387UGu7yYqIO7h1wCHg5rg9fpqwchZVYvFpwBZCSF1NmKVzc+K9mnDus79cwbTzdxCqnauKDbFe3RAVjJZ0GEDSOmAXcFu6hOqkKMb9GsLxcF5nTNcB9RnVXqto4nxJJwmhZQSA7csJpWQjMCZ5LhFRF9+Ly1V8GlC8l9gJvJoj74hK+bIuUxYBbwPL45a6bylhSZsJ8e5MQHGHXnWSLcL2hUB3SRWdhTU71ZR0FKi3fUO1xnUWxCR7K7BK0s4cqacTcl9FKHWN+Dyw0PaOuEM842D7EmAycBlwD6FKeypH/gHAMUkVH5FnXiPG5LEAuLRS4k6AsYTt/J3AO4QqLc8N4fmSVlRDkHmNeBYdg/8Bfi68o7efDhEAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left(x^{2} - y^{2}\\right)^{x}$"
      ],
      "text/plain": [
       "         x\n",
       "⎛ 2    2⎞ \n",
       "⎝x  - y ⎠ "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f2 ** x"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4fa2fa51-ffc3-453f-b482-00bd435d1e92",
   "metadata": {},
   "source": [
    "### 将字符串转化为符号表达式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "1fad76f9-7fbd-480e-9dcf-7c56a5f27562",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'x**3 + x**2 + x + 1'"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "str_expression = 'x**3 + x**2 + x + 1'\n",
    "str_expression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "5fda7a82-0558-418d-88b0-855206dee616",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAI8AAAASCAYAAABim40OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAADKUlEQVR4nO2YS0hUURjHf1qLFgbRyl0RQW1SoVoUWRaYVAslpSgUhYSKFj0g0DA+/2BkaCAthGjR2GMTEkG5MHqtqoULexgFBkJBQSBIEhTltDhXHcdR5nHvXMX5be5w7rnn/u7hm3O+7+RFo1Fy5EiH5Zk8LOkUcBxY6zUNAW1m1pehV6BIagYOAhuA38BroNnM3ocqtsjIz/D5r0ATsBnYAjwDHkgqylQsYMqAbmA7sAf4CzyRtDpMqcVGnt/blqRR3L/4uq8DB4ikAmAMqDKzh2H7LBYy2rZikbQMOAQUAC/9GjdLrMStwqNhiywEJNUAu4ASoBg3P3fNrDa2X8bBI2kT8ApYAfzE/XvfZTpulukCBnG5Tw5owQXNOC412Ziokx8rzydchK4CqoFbkspSTT4lNQA3gd1m9sIHr2Tf2wHsBErN7F+aYzQQgvtc+OBzFhc0w7gV6HmiTjOCR9JjoByoNrP7Me15nkw9cMXMmibvmdkf7yUAA5K2AmeAxjSk0yYdd0lXgVrcJA8TEum4B4mZTQWLpDn7xVdb54EJoM3LYSbpxH3AjSQ+IB+3hWWblNwlXWM6cD5k1XQ2fsx71pmx8pjZG0m3ccJ1QETSBeAccA84EdtfUjvQB3zBJVVHcWXwgcDN40jFXVI3LnCqgFFJhd6tcTMbz6o4qc/7QiFRztMCHAZavRL2EtAP1JnZRFzfQuCOdx0D3gL7zKw/OOV5Sdb9pHd9Gve8gNagJecglXlfECQ855F0GXf4B67sLjezX369VNIIsCaFR3rMrCHJsZeUe5A+3vhluIQ56VL9R8zvY35OvkcXrjqLpQSoBHqAkbh7gymMvdTcg/SZl1nBI+kILlH7jtuOTjO9zPuCmXUleG8D7oMj6Za7S9E9KJ9kmFFtSdqPi9YhoAj4CDRKSnhItJDIuWefqeCRtAPoxR0O7TWzH8BF3OrUHo5ecuTcwyEfQFIx8AhXMZWb2TcAM+sFBoBKSaWhWc5Dzj0QrypJEUkRphP4bZNtkjoB8iWtx5WEUaDCzD7HjdXsXTuyIZ4KOffAKMGdOdUDFV7bupi2GoD/WDuyxzRGkJwAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle x^{3} + x^{2} + x + 1$"
      ],
      "text/plain": [
       " 3    2        \n",
       "x  + x  + x + 1"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import sympify\n",
    "str_2_sym = sympify(str_expression)\n",
    "str_2_sym"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb65b153-0e0b-4ffc-b7d1-77e5357ae563",
   "metadata": {},
   "source": [
    "### 分式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "5b850dcf-189e-4f24-a9ec-d918ef67bc23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB8AAAASCAYAAACjMAXnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAB3klEQVR4nMXVz4uNcRTH8dc1kyzIwoJiY9ZkNrLyu1DC3MEO8weQRqZEdDoLskMoRZkNCzVkMX6kZsKKUkSyECM/mjSUhRJmxuI+U+POnTHmFqeevp3z/XTezznn+zzf0vDwsP9ljaOdzNyGlWjGEszCpYjYMVGSzJyLDziLRBkbsRjz8R1PcREXI2IIplXlOYw9Bfz9XxSxpch1DdtxHsvwACfRhUW4gCuZWRpTOfbhHV6qdKB3kvAyPuEeStiM7pEKITMP4SG2ohVdv8EjoneUeFLUzJyNNbgcEYPoqaWLiP7MPIejWIWu6rZPxTZiOq5OQvujWH8yduZTsTK+4s5EosxsxK7CvVU3PDNnYANuRsS3P8iPqxy6GxFxu2441mGmyimf6CX3Yj9eYOdIvF54WeUb7p4AvBun8ByrI+Jz3fDMbMAm9ETEl3E07TiDZwW4f/R+PZWvwBzjtDwzD+AEHhfgj9WaeuCtGML1GuAjKgfsEdZGxECtBKXRF0tmtqClcOdhPV7hfhEbiIiOQvsWfRGxvArchk4M4jRqjaQvIjqrf6/NaKuKNRUPvEFHZi7FApW2VtvCYm1Ae419uIvO0lSu1Mw8hoNoiojXf52gsKnOvIwn9YCpmvm/tl+BOJo2UhWKmgAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\frac{1}{2}$"
      ],
      "text/plain": [
       "1/2"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 定义分式\n",
    "from sympy import Rational\n",
    "Rational(1, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "e26d0915-552f-4fab-a4cf-090eaec11844",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEQAAAASCAYAAADixHhYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAADC0lEQVR4nO3XW4hVZRQH8N/RIXowCnpIKIikh4LKeSjqwexGGknljEUEmQP1UBRlZWShrBZUGAVNRBAYOBL1II3Rg5UFmgVBSaB0oYcuE1mIWtBDFyw9PXx79HQ6xzln5oxJ+IfD3vv71rfOWv+9brtWr9cdx2H0/dcGHAmZeSMuQz/m4iS8EhG3dnD2NPyIF5AYwCKcj9OxH59iHdZFxEGY0XMveotVuEch5Icuz96g+Pc6bsJaXIyPMIxRnIeXsCEzaxyFCMnMIeUtXBER73V5/H7swldKpGzt4uwAfsL7qOF6bBqPhMq2R/ExlmAQo/8gJDPfwdVYEhEbG9ZrlVPL8FRErOzSsUkhIg4RkJkdn8vMk3ElXo2IA9jSRv/uzHwRT+ByjDanzEM4iMczc2bD+jMKGWuPFhlTxCKcgI0TCeLP6voXTTUkInbiZZyLpRwKqwewAXf2xt5pxwB+xbtHEsrMPtxWPb5N6xqyCjfjscycpYTTZixtzL9jFZl5Iq7BWxHxxwTia5TC+mZEbKYFIRGxKzOHsRLP40MMRsT+DowZw5lttre2qAPrI2JoIr1dYgFmKd2lLTLzXjyIL1XZQPsus7fh/vaI+K1DY4ZxStNav9IC12OsaW9Hh3q7wYAyY2xqJ5CZd+M5fIGrIuLn8b1/EZKZtyhFdDdm4z7c1YklETHcQt+QQsjIJNpuV6gawXXYEhG/tJFZjmfxmULGnsb9GU3C1ypv8nNcoITTHZl5Ts+tnx7Mx6napEtmPqyQsUOZi/Y0y8xoEJ6H15RBaEFE7MVqJYrW9NryacKgMja80byRmasVPz5RImNfKwW1er0uM+diG37HvIj4ukHRdlyI+RHxQbcWTmVSzczFWFw9zsZCfINxO/ZFxIoG+e8xFhGXNulZhhEcUBpFq3Qai4iRvsw8W2mrdSxsJKPCI0o/fxqXdONQD9CvDISNmFP94DusgMy8CGcoKdGMs6rrTCxv81/bMFL7v3z+Z+aTysubExHfTlbPsf612w0GsHMqZFDVkOM4jL8BJVEGaMP4bZ8AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle x + \\frac{1}{2}$"
      ],
      "text/plain": [
       "x + 1/2"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x + Rational(1, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9530a8e8-1db2-4f4c-a787-56592b1870ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB8AAAASCAYAAACjMAXnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACUUlEQVR4nMXVT4hVZRjH8c+dGaSF4MKFi4QoWiRUbgxdjGJFFknFHRFxMbqwRSCUGKFJw9MDFRMFFRUEBo4ELsQxXEw6BYIKQYqglOEmFJIYNAMXqWjOdXFe4XQ5d0Ib8Lc557znOb/v+/x5Oa1Op+N+aWA2TDJzAf7Al0i0sRpP4EHcwM/YhV0RMQ19swHHK8XrW6zFTizFT/gU43gcX2NvZraYpcxVmV7GUbTwMibuZAiZuQPHsQZDGP8XPDO/x3NYExH7a+stVck24sOI2F57Nw/PYE9E3MLhpt1FxFRmfoX3sRLj3WV/C9N4LzP7a+sfF/DOOrhoNeZgv//WzXL9h66eR8RpfINFGC6Z7cBW7MVrDYZt/I0fZqJm5gA2lMdDNPf8HazDu5k5V1WmSQzXe1gMH8ALOBgR12eCY1Q1dN9FxCQN0x4RF1QT+hA+x48YiogbDYarMFc15T2Vma/jTZxVKtoIL7pUu98UEVd7xLVVZ3hiBvBmfIZf8XRE/NUTnpnrVQM2VZbe6GHaj5dwOCKu9IjZgi/wSwFP1d/3dQW/iN04gydVZXo1Mx9r8F6B+XqUPDO34ROcKuCL3TF9teBB7MMFrIqISxhRDeVog/+Q6lgeaACPlG9O4tmI+LNpg61OpyMzF+MIrmEwIn6rGZ3AEqyIiGO19d9xPiKWd4E3Ygy3VAPb1JLzETE2kJmPqo5SB8/XwUVvq87wR1hWAE9hoaqs3Xq4XPuxpSnjkuhY615+qZn5QdnUIxFx7q4Niu71r9bG6f8DpvT8fuk26DTRFK3Q8ZUAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\frac{x}{2}$"
      ],
      "text/plain": [
       "x\n",
       "─\n",
       "2"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x * Rational(1, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "d74e6292-0af7-44d1-ad26-1a1e3ad28949",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Rational(x, 2)\n",
    "# 这种形式会报错"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "a5e88433-2cea-4f99-ac9a-82a7bbf07c80",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADIAAAAhCAYAAACbffiEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACSUlEQVR4nO2YP2hUQRDGf6cXUqgIFqKdhWglCAYExfinETsRRBQVCxvBMoIJwudnJ4egKYJ2sRUbEUmKiEJAtIr/EAWxEIIgeiimCSpn8Z5hTd6707vs5XncB8e9nZ35ZofZ2X1vSrVajU5AOQap7X7gHLANWA8clnQ7hq/fWBaJdwXwDDgbiX8BomRE0hgwBmA7hosFiJWRtqMbSNHQDaRoKMW4EG2vBDamwymSO2UCqEp6v+gOiXT8An3Ag2BcSf9vAqdiOIySkaVAx9RIxwRSBrD9X+8vSaVujRQNhQnE9nbbPc3aF2ZrtVKnhakR28uB05JuNMtRlK21E3jUCkFRAtki6UUrBHPvWkvRMAjwx/62PQgcAjYDs8BjYFDSyzyCMCNNNwxsj9q++K92qe0m4M088R5gBNgB7AN+ABO21+TxzGWkXQ0D2yeBz5LupaLdwGioI2n/PJsTwFeSWrqbxdvWGrHdC3wEjgXiHknfG5iuIllrNU8h1vdIJiTNAuO2L9guA6uBT39hehV4SlIrmWgqENtDwFAg6gVqtgcC2QFJkzkUk0A/sBYYb+CrkurukvQzT6/ZjFwHbgXjy8A0MBzIpuvY3wGOAq8lfclTsn0FOA7slfS23oKaCkRSlWC/2v5G8j1e11mAJ8A1klMyE7aHgSMkQbxqRBjeI2HDAGCD7a1EaBhIqtl+DjzMmrc9QpKJg0DV9rp0akbSTJZNeGr1kXQ8ptJxJX2+1PLKs3Fe0rucuTMkJ9V94EPwG8jRL87bb6v4BbA5wi+huUJWAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle \\frac{1}{1 + \\sqrt{2}}$"
      ],
      "text/plain": [
       "  1   \n",
       "──────\n",
       "1 + √2"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import sqrt, simplify\n",
    "1 / (sqrt(2) + 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "8be73077-b072-40dc-94e2-49def5556812",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.414213562373095$"
      ],
      "text/plain": [
       "0.41421356237309503"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "float(1 / (sqrt(2) + 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "89989dd4-7b98-4ac2-b338-3693e8fc5b21",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFUAAAAXCAYAAAB6ZQM9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACwElEQVR4nO3ZT4iVZRQG8N84tgohlCBwEQUFQdLsYtpUCBUa+SddBJXuCzEqgkgOJwjaNa4KChwXbYIWGv7baINWFAQDRZQUTGARYS5SREybFu9XzNy+e+dee8WYex+4fN93vvM+5+Xh3HPOe+/Y/Py8Eepi5Y3ewP8BmbkKv9fiG4la8Cgei4hjNchW1CBZBngIJ2qRDb2omTmO8Yi4XItz6EXFA/i0JuFIVDbgcE3CkaisiYjfahJW7f6ZuQ0PYgL3YRXej4ina8aphcy8C9+12NdgCzZiHdbiMr7CPuyLiD+78dbO1NfwvCLqT5W5rweewEct9u14F/fjc0zhQ9yL9/BBZo51I609p76AM/heydgqY0pm7lQy5OGI+LgGZ4O7I+J0i/20IvihhRmZma/iCzyJrYrQ/0JVUSPiHxEzsyb1NSMzV+B1fBIRRxbYV6O1lkbE8S72XzLzHbyhzLatog5Do3oEk8pXeiGutev/0VyvdHNY9qJGxFG8iMebrP0bkwacTzNzJZ5tHo9281v2okJEzOKiMujLzJtwtVcH74I3lWZ1uNfvBItqambO4fYBglQfl5bYw4mWWr0/Inb2QX0Qm3BKqYczA+5rl5Lx3+KZXr6djeoHXBog1s+DbKxPTOGWDtuEIsh+zHW8m+2T9wDexstKne27k2bmc9iLb7A+Is718l8kakSs7zfQ9UJETHXampFqE6b/w0g1g1sz8x7cHBEX+lmUmbvxFr5WBP11qTVDUVMhIq4o3X6PcjJaEpn5iiLorDIjLykoQyRqgwN4SvspahEyc4/SmL5UMvRsv0Fqn/03Y3PzeFtznczM6eb+bES8VDPmgDiCzyLiTC+nzNyhHBiu4iR2tTTIuYiYbltf+5g6gR0dtjubD/yIGyZqRJzPzI19uN7RXMexu4vPDKbbXoyN/k2tj78A5bPQU88YsaIAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle -1 + \\sqrt{2}$"
      ],
      "text/plain": [
       "-1 + √2"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(1 / (sqrt(2) + 1))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7a2837d-4ec3-475b-9e9f-8d26a6381cb6",
   "metadata": {},
   "source": [
    "### 假设条件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "d518b903-c5ab-4ddc-ae7f-6fe830daeb8e",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import symbols\n",
    "k = symbols('k', integer=True)\n",
    "x, y, z = symbols('x,y,z', real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a1084251-6b78-4d81-987a-438189cb482d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "a67fbc00-9b1c-4797-b33a-a4c89f6e0023",
   "metadata": {},
   "source": [
    "### 符号数字\n",
    "https://docs.sympy.org/latest/modules/evalf.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "2cd0f3a0-7cae-44d7-b350-aa7bde0896fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAPCAYAAAA/I0V3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAAi0lEQVR4nO3SIQoCYRQE4E+xajYbxObewGjdYBTMRmGj8PgP4zkM3kMQjEb7Wv6wrC6sxeTACzO8YSbMoK5r32LUJCmlDVYosMQYp4jYdppwzM9P3LH4lDRs8QPmmGDfq15EnBtVuzxvSb3wN/3cNGgONqVUosx0ijWuuGTtERFVe3sFdi1tlg9uqF5xyRu/uhi7owAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle 1$"
      ],
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import S\n",
    "S(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "dfd2f085-928c-4218-beb5-7c6036caf11c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACEAAAASCAYAAADVCrdsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAB3klEQVR4nMXVQYhOURTA8d8gpoYUC7OQ0VhQ0rCwsDFFSUnmE7spWysls6DUmbNgpVhQrKjBkiywUKYm2ZMdGUpqRM1klBRj8d43jedh5puvnHrde8+5557/Pfe+cztmZmb8b1k2d5CZR9CP7ejDKtyKiMG/LZKZ6/AeVyLiRKl7g54/uExERHctBM6WwafxDlvmtxeHsAR3K/opXKqZPz13UIU4WQZ/pcjI6DwhGviEsYp+MiKG/+X8C0REzAbNzHlFz8zV2IPbEfF9Xk5/g2hRDmA57tTYVmTmIDbgC55jrAq7pA0QjTLAoxpbN0ZwTnE3HuNlZva3DSIzO7EfDyPia8V8HXtLkC5swzVsxMPM7GtOXOxx7MNKv/8VIqJ6qV7geGZO4xSGFVlc9HE08A33F+BztWx3NxUtQ2TmUhzE44iYWoDrh7LtWjSEYidr1RzFP2RX2b5uB8Rh/MC9qiEzt2bmmhp9Dy6Xw5tNffXtGMBAOWzW9l2ZeaPsf4yIobI/gKcRMVEDeBSnM3MU4/iMTYqa0okHuFALoXi4jlV0veUHbzGUmTuxHhdrACjK/WbsUKS/C5N4oqgbIxEx+3x3tPKUZ+Z5nEFvRIwveIGKtHonGnjWDgBazES75SdViIf1k21nkAAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\frac{1}{5}$"
      ],
      "text/plain": [
       "1/5"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1/S(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "557fdfee-0bdc-4489-9e01-651f1882f998",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB8AAAAQCAYAAADu+KTsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAB9UlEQVR4nMXVS6hPURTH8c/1mJBHqTuhPG4eA2aKMkJJlEKGyEzkIgNFWi2ljLwzochQKRNCSZJnKUWeXd0ZSSRJeV2Ds/8c597/5Y78Jr/OPmuv7977rLN2R19fn/+lEc2BzJyEvViKCXiF88iIeD9YssycgJVYjjmYiC94iFM4FRE/WvHDGpO7cB8bcA8H8RJbcbskH0xrcALzcBeHcA6zcRJnM7Oj3c6PoxPdEXG0tqgD2I592DgI/DlW4EJ9h5m5q2xmNVaVBeloffPMnIYe9KKrMXmM6vg70BkRn/5yAv1UFrAPxyJiC38e+6LiV+pgiIiPuIlRmD9UcNHX4t9aA3X4zOLP20x+UXzGUKmZOQLryuOlgeDjin9ok6M1Pn6ocOxXFd3FiLg8EPxvalXpkBpDZnZjB55ibf1dHd7a2TgDa2wj7l/Am3EYj7EwIt61gz8r3u6bTi/eriaa4G04hkcF/LoZU4dfK74kM5vNZwwW4DPu/AN4p6pBPSjgNwPF/YJERA+uYAo2N/NhNM7U//HM7MrMWZk5sja2R1Vg97E4It62W2Szw23CLRzJzMV4omqVC1XHvbsRfxWTMRW9mbledS98xw10Z2aT2RsRp/vBI6InM+f6fbEsU3W2I6qL5Z3BNbX4cGxrE3Mdp6m11/+hn59Vp6YBHd6xAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle 0.2$"
      ],
      "text/plain": [
       "0.2"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "float(1/S(5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "0e19459c-aad2-4241-bbe7-8b5222098e22",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAAyklEQVR4nJ3SMUoDQRjF8d+KpY3WIZWFoKDmGlap4gFsvICV8PEVKTyBlRcIYmVn6wGiUbDwChaCjSCuzSqTxRXW17zhDf/53jBT1XWtr1a/F5l5gOteEF5xjmM84rLY28IEt7ipynqZOcYVphFxWuQnOMNRRFystCbvNT5v5aMy74LufoE+8NAFveG5qLaGTTxFxPsSlJnrGOI+Isp32EdVVi4n/VXt5z5d0Nyydhpf9Jm00fh2Zg7a0C4+yxMbzfCCKQ6h+s/f+wJQADhgMQLodAAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\pi$"
      ],
      "text/plain": [
       "π"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import pi\n",
    "pi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "3422f60e-5fba-4fc2-a1fa-a7ccbfc20637",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 3.14159265358979$"
      ],
      "text/plain": [
       "3.141592653589793"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "float(pi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "fef41fca-e4f5-45d6-9484-e718e104e46a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAQCAYAAADNo/U5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAABFklEQVR4nJXRsUvUcRzG8dcdbmo6VAeCBILiEOjQVEFrg/0PLS5twS26fPwggeKkNLVGS1OjYFNDY8KNioPbgZy5hA7GOdwv+d15d53P8vAZnu/z8P5W2u22+2qsfGTmNp5hAQ9xiVN8w8eIaEG155H3GMcBdvEF19hAIzNn7zThQURc9c7JzA9YxxredTX1CxT6Wvh8v3mD9KbwRr95/+bUMYEpHTAvi8DWwBDqqJXufbyNiDOoDPunzKzhedEwiZWI+DU0VAo/wRGOI+LpSKEieIhlPBqVHswU/vcWRGYu4iIimj0NVWziMX5GxO8yvdfYycwfOEFLh+ArzKGJVbqRf8cnvMASpvFHB8Bn7EXEOf9BPkg3CPNVjJhXkjAAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle 3$"
      ],
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "int(pi)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "2eee71b8-7ef6-460e-96c5-9451a8c250ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAABcAAAAUCAYAAABmvqYOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAABl0lEQVR4nLXUPWgUURQF4G/XBCzUQuwEW/GvEgmI/0XALsRCBUUEGxWtbLaQ6y0ERQQRSRsEO7EQsZEIYmUpIlZptLEThGAQI2MxM8vsGE3Cbg4Mw7x377nnnXeYTlEU1gtjwzRnZg/T2ImfeIdeRHyE7pDijmEGB3ECS5jLzK3QGaUtmbkJ3zEVES+GVd7GZqUb3xjeljYe4L3S++EutInMvIcjOBwRv/9JnpmncAkHsAWfMYu7dWOr/j7O4XhEzNfrY62iDXiCM5jHU2XETuK2MnIXWj0Pcboi/tTcG0hLZj7CVdzBzYhYqtbH8UYZuT01SWbOVIqn0CReiIiFboN4AlfwPCJ6NTFExC88rj4nGiSXlQl5ja+N50bblmvo4Edm3vI39tanbQztLFPXR5N8snqf/V8Dvqyw30enKAqZuRGLeBsRR1fbvBJqz+vjbRsVcZ88IhbxAbszc3q5wsw8VEV11ehHMTMn8VJ5D3PVsC62Yz/GI2LHmpVX6l8pc/wM+3Ad57GrGnZxLcQDytcDo/4rDuAPAJ6Cvl/GP68AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle e^{2}$"
      ],
      "text/plain": [
       " 2\n",
       "ℯ "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import exp\n",
    "exp(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "314cf4a1-3940-4ab1-9483-1cdceaa694dd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAXCAYAAAAcP/9qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAB5ElEQVR4nMXWPWsVURCH8V9erMTGYGVloSBoLUkVEaIYUVQsLNQPIEjAQhDCMIJgp6KFoJDUgkUUY9IoKRQUhIAimsoyiAq+YBETY7GrXJO9yV4TkmnO7uzseWbO/s/saZufn7ce1tlKcGZuwtc1B2M/DkTE+ErB7S3G9+LJSqEtgTOzAx0RMbOmYPTg2WpAWwUfxOh6gLsi4tNqgWupOjO3412FvwtH0Y/d2IoZvMIQhiLiV9WcdSs+jAcV/hO4jT14jmu4h124g7uZ2VY1Yd19vCMipir8U2VSDxsry8yLeIHjOFYmUw3OzHZcwtOIeNTg34zKbxsRj5v4pzPzFi4r9v4icONS96FbsXyN9r9q/lmOs1UP/4IjYgzncais/o91a3H/ZmYnTpe3Y0uCS/gkfiiahczcgLlmylzCrigENtqsr1ep+j6OlNe9mGiFmJnnFCv3FqeaxVWBRxrAfaj9J8rMs7iON9gbEZ9bAU9gS2buxMaI+F4TOoCbeF1Cp5eKXwSOiFmFigcVHagO9AKuYrKEfljunWadawQnVXerhdBBhZheYl9EfKyTbFvVmas84oxHRM8y0DMYxhxu4EtF2PuIGF7orGyZEfEtM/uXTZtt5diBgSYxE2Vy/1hlxWthvwGXK5k8n7alGgAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\sqrt{2}$"
      ],
      "text/plain": [
       "√2"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sqrt(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "f2fdfb7f-15ef-42f7-b0e9-fc7081e19c08",
   "metadata": {},
   "outputs": [],
   "source": [
    "expression_sqrt = sqrt(2) + 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "566db50f-febb-4d8d-8935-a644edba1e25",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMYAAAAQCAYAAABN/ABvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAHvklEQVR4nO2afbBWVRXGf1zAZEhAcdDpi8CBTGlER1GU8AMlE3OApGkKUps0RotQmakUWzw6jtcpSlEbER0kcybIPiYV8CvGm4k5k5EpJQVeyhIIFbsYpHz0x9ob9j2cc99zzn357z4z7+z37LP2Xvs5+3OttXvt3buXHvSgB53RJ/6RNBiYAkwCPgF8EHgX+BOwGFhsZnvqKpI0A/hReLzczO7NvL8YOBMYDZwAHAY8aGbTm6ijMsc67ZJ0K3AyMBI4EtgBbAR+CdxpZm/klGkHhhZUudnMju5C3yeB2cDpwBHAm4HTbWa2vC73OlwkXRrq6wp7zKx3d/SEMh8CbgTOBwYDrwd5mdlbOfK9gMuAK4Djgd7AK6G9d5nZ7ijbkpSbBiwCTgV+B9wG/AwYBdwLLAsVV4akDwN3ANu7EJsLfA0fgP88SDrqcKzTrquB/sATwO3Ag8AuYB7wYmhrHt4GlPP7XpEiSXOBNmA8sBKYDzwMHA6clYjW7d+qXNYUcBDw6yCzort6JB0D/B4f6M8DPwA2AN8AVoeFIIslwH3AMGBp+B6HBH1LU/59kkLrgIuAR9OVQ9J1QfFngan4xyyNoGwx8Abwc2BOgejVwGvA3/AVetVB0FGHY512DTCznTntvBm4Dvg2cGVOuW1mNq9E/bG+acBNwJPAVDPryLzvmzzW7d9KXMxsDT458tq7Ovy9J+d11W/2Q2AIMMvM7kjkv4/32c3AzCR/MjADeBUYY2ZbQ35fYBnO/xLgfkgmhpnF2dwJZrZJ0t1B0VlUnBjALOCcUPacIiEz2zfgJFVUUVpHZY512pXXwQHL8E4eUaqiLiCpBbgV+C/wheykCO14L/lfq3+bxUXSKOA0fNd9NKcdpfVIGg5MBNqBu7JV4UelGZKuNbN3Qv7UkM6PkyLofU/SDcBk4OtkJ0YDxA+8q6R8JPBxoBW43czaJBUO2rpooo5aHCviMyF9seD9+yRNBz4CvBPk2tKzb4LT8SPBQ8Bbkibhx6KdwPNmtjqnTBHqcG/EJYuvhvS+Aj5V9MQ+fjxrF5lZh6Tf4hPnNOCp8CraaBtydMS8kyQNMrNtDSeGpD7Al8LjykbymXIPAH/HZ3zT0SwddTmWqHcO8H5gIG5YjsM7uLWgyNE4nxSvSrrMzJ7O5J8S0s3AC7hBnepuAy42s383aGMp7jW4pGX7AdOBPbg905VsGT0fC+m6gmr+ik+MkeyfGHGXGJYjPzz5fyzwXEuOUBat+Eq03MweKyEf8R3gROBSM9tRoVwVNEtHXY6NMAff2mfjHbwSmFgwWBcDE/DJ0R8f6AuBjwIrJJ2QkR8S0plAP+Bc3GM2CngMN8Z/WqKNZblX4ZLF54BBwAoz+0cD2TJ6Bob07YI6Yv6gJO+RkF4j6YiYGRaG9Ix8ODQ4SkmaBVwL/AU3XEpB0hh8BZ9fcUsvjWbpqMuxDKKLVdJR+NGnFfiDpAvN7IWMbNaAeQmYKWl7aN883N0aEd2dvfCd4Y/h+WVJU/DV9ExJY4u+TxXuVbjk4IqQLmwg1109EdG7lAbpfoLvWp8G1kr6FW6fnQscg+8yI4Dd0Nld2wmSrsLdWGuBs83szTItSo4364AbShKphGbpqMuxKsxss5n9At/eB7M/1lIGd4d0fCY/+uk3JJMi6tuB7xoAY/Iqrcu9KhdJx+ED/DVgeRkdJfTEHWHgAQUdAzJyBFvkInxH2oQvBF8O7RqHezQBtkDBjiFpNu4XfgmYYGZbyhLCz4cjw/+dBZ6cRZIW4Qbz7Ap1N01HNznWgpltlLQWGC3pyNQ70gViu/pn8l8J6baCcnHi9Mu+aAb3ClzqGt1d6YncRxYUix6sTjaIme3C4zzz0/xgA43Gg4ovQ87EkPRNfPtaA5xXsvNS/A8PouThJNwmeAYnV/cI1C0dTeDYHXwgpGUHydiQZr0pbbgXaYSkQ8zs3cz7USFtTzObzL1LLpIOxVfmPRT3Vx090YU+UVJLJi5zGHAGPsifK1n/DOBQYEl0cXeaGMGfeyMeUZzYaHsN0ce+wPpYYdjGv1IgPw8ftEuy1zWqoDs6qnKsCknH4oG6TZn8FjwYNwR4Nr2yIOl44PVsWyQNBe4Mjz9O35nZVklLgS/iToi5SbnzgE/hR4mVSX7V/q3MJYNpuDH7SFdGd1U9ZrZe0uP4Mesq/MbDvmL47rowiWHE+gaY2X8yeafgC8V2/NsAne9KXRJe7AZ+A8zKOaK0m9n9yfNT+P2eYWRWpqoIkcnJ4TH6nMdKivq2mllRRLusjsoca7TrfOC7wV26Hj+7HoVHzYfj59vLMzqnAd+StAqPzHbgBuEkfCVbTv61kGvwKx7XSxqPR7CH4kb6bvy+2La63GtySRGN7rxId4o6eq4EngUWSJoA/Bn/FmfjR6jrc/Q8IWkHfoTswO9LXYCfQKaa2b5dOd0xon+3N+4qy8PThMjgQcBoPCSfYjj7fcwbKb7qURZ1OFZt15P4QDgDv3Q4CA/WrcMdBgtyVupVuG/+RPzo1B+3HZ4JZR4wswOuQZvZFkmn4rvFFDyg1YFHlm8xs/QoUYd7HS7AvsDrOMoZ3ZX1hF3jZPZfIrwAv0S4AL9EmNeuh4DP496pfsC/8LhKq5m1p4K9eq6d96AHB+L/E20PG+FsNpYAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle 2.41421356237309$"
      ],
      "text/plain": [
       "2.41421356237309"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expression_sqrt.evalf()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "7b67122b-ed54-488d-9926-05fb6607af43",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sympy as sym\n",
    "\n",
    "sym.isprime(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "218cfaef-d33b-4e34-8917-3bcc7766d809",
   "metadata": {},
   "source": [
    "## 因式分解、展开"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "dc768998-5028-42fc-b2f4-7d09c08afb5e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAAAXCAYAAAC2/DnWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAADA0lEQVR4nO3YX6hUVRTH8c+9+lT20pNEpZBgL9Gjl0ixQosiEqOHRIuIoD9C/yy8Ua4WFBVqXCyMiKgIX0Kkfy9FvYRacSNKMgwSfZCMDEmQ/uf0cGbqOHeGuTPnzL0YfWHYw95rr/Pbi73XPuuMNBoN/zOVuVUmZ+Y4VmMxfsMnGI+Ir2rQNjSmo3u04jOWYzsuw5X4Ex9k5rkV/Q6b5XroHqnzKGXmPJzAqoh4pzbHQ6aT7qo7pp1zmj6P1+x32EzRXXdgJvCF4syeSUxo010p+ZbJzM1YhqUR8VddfodNN91z24zexwrcGBG7Sv0jeAW34pmI2Ng2byvW4oqI+HZoq+hCZj6ILdgQEVs7jC/GPnwaEctK/V11tx+lh3AKT2TmnFL/FkVQXuoQlG0l518PuriK7G62Y13Gn8McrG919NJ92o6JiC8z83VFENbh1cx8BA/gDdxZts/M7U3nq3A8M+c3h05GxMm+llaNz/ELlrQPZOZNilOwLSL2Nft66u6UfB/Fr3g8M9fjSbyHdRFxqs32LkVG/xBHS78Ng6+xfyLiD0zigsw8r9WfmWfjWfyATaUpPXVPSb4RcSQzJ7BRsQX3YnVE/N7BdmSQhWTmYSzoY8qOiFjbw2aPIomOoZUfN+F83BYRJ1qG09Hd7VY6Vvp/e0T83MtRnxxU7Mrp8t00bPY02yXYlZkX4358jNf6k9chMJl5syLZfo/5uFex9WojIq6q01+TvWj4NwE/r0i490RE36/3p5UEmXkt3sQ3ihriIyzCJRFxoJLsGSAz92Mh7sAOvBARdw/i65/km5mXYyeOYGVEHMNjil31dEXNM8VunIUX8aPiIhmIUcjMS/GuopBaERFHISJ24jPckJlLK4qeCVp5Zp7iM8LANdtoZi5SXMcNXB0RB9tsxpvt5kEfMoMcaraTeLmKo1o/O8w2mfk2rsNYRExW8VV3dT1rZOYaXK9IuJWCQo3V9WyQmRdiDS7CLdiPh+vwfUYHBtfgKfyEt3BfXS+j/6kcUyd/A7unHDYU0B9yAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle x^{2} - y^{2}$"
      ],
      "text/plain": [
       " 2    2\n",
       "x  - y "
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import expand, factor\n",
    "f2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "f7191e9f-128c-4a74-8e86-889c66304b3f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAVCAYAAACOleY7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAEPklEQVR4nO2aW4hVVRjHf6M9ZAYFBkUXs+vUS0kJzkMNiI5GEUbRQ9LUVCJFdr/gRPn3H13JbOiC2IW0CCrUKHyxHoxSu0yUCTK9SFLSlIZmVEqh08PaR/fsvc/e2zMzZ8Yz/l/WzLe+tdf3Y397fWvvdZr6+vo4qtGrMcMdwFENr47JMtp+C7gCOEvS3/UNaWhk+1LgG2CupDdy/EYVe1OyBNieAnwNPChpSd2irINsfwC0AOdJ+iujf9SxZ5WAp4A/gaV1iq2eeho4Bbi7Sv+oY++3Atg+H/gBeF3SvLqGVyfZ7gGOA86WtD9mrzu77Q7gTWCapE/rMF+KPbkHuBVoAt7LGPwx0AZcJ2l1zN5EgLgZeFbSgqEJPxXPA8BiwnL9fEZ/M7AZ+EpSa6zrXWARMANYG7NXZY+u1wj8KfZkCZgB7Ae+zJjzIeAA8ITtsTH7YgL8a/WCj7Q+aluq9L8EjAXmJ+wborYtYc9jh8bgT7EfTADb44HJQE/W7lfS98DbwIVAezTmEeB+4H3g9hogBqJvgb3A1GSH7esJkK9I2pzo7o7a1ph/Ljs0DH+KPb4CnEbImN6cSR8F9gGLbM8HniQsJe2SDtQAUbMk/UcAOsP2qRV7dDOXADuAhRnj9hAYJsbMZdjhCOfPYo/vASZE7e6cSbfb7gIWEJaYjcC1kv4tCtj2NuDMIr+Y3pF0Y4HPBkI2twCVurwQOB24JQLO0i7g5Nj/hewwpPzrbCdtKyR1FFy2Fv5+7PEE2Bu1xxZMujP2922S/inwr2grIfvK6pcSPpWaNhVYbfsC4D7gC2BFzrhxHOKF8uxQO38XcGLCNhmYTYh1W6JvU4lr1sLfjz2eADuidgJVZPsGwqbnV8I75T3AHSUCRdL0Mn6HqY1AH4c2Qi8TlvI7JWUectgeQ7gRP8bMhezR2IHwd2Vcr4OQAMtrfA08LP4s9vgeoJeQ3c1ZM9m+kpBVW4CLCO/Mc6OsGxZJ2g30AFNszwGmA8skfZczrJnwurcpZstlh4bhT7EfTIAoYz4DTrJ9bnyU7cuAlcB2YKakncBjhBXkmcECqlHrCR83lgG/EzZqeao8Lesqhjx2aCj+FHvyO8CqqJ1VMdi+GFgD7AHaJPUCSFpJOGCYbfvyAQAMVJU6eDzQKWlXgf9Mwvv+hwl7ih0ajj/FnpUAvwE3AURPw1pCnZklaWvCvzNqn6sp9MFRpZ51A1VP+QBsnwBcA6yR9HOiux975N8w/NXYs04DOwmHIpcU1NIRIdsfAVcBLZK6C3zvAl4EWiV9ntF/RLFDef5q7FmngS8APwGPD3Ksg65o43M1sLTEzR9HeGJXZd38SEcMO5Tnz2NP/SBE0j7b7cA02+NH2o8ibE8E5gDnEJbrLcDDJYZOAl4FlldzGOnsUDP/JKqwp0rASJfteYQd7x/AJ8C9ksp8NGoIDTb//ygRQVIdncF9AAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle \\left(x - y\\right) \\left(x + y\\right)$"
      ],
      "text/plain": [
       "(x - y)⋅(x + y)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f2_factored= factor(f2)\n",
    "f2_factored"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "8433b90b-63a1-4e0a-8cc1-4769016e9e33",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left(x - 1\\right) \\left(x - y\\right)^{2} \\left(x + y\\right)$"
      ],
      "text/plain": [
       "               2        \n",
       "(x - 1)⋅(x - y) ⋅(x + y)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f2_b_factored = (x - y)**2*(x + y)*(x - 1)\n",
    "f2_b_factored"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "677020c4-b7f4-4d84-b262-44ae38fa6038",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle x^{4} - x^{3} y - x^{3} - x^{2} y^{2} + x^{2} y + x y^{3} + x y^{2} - y^{3}$"
      ],
      "text/plain": [
       " 4    3      3    2  2    2        3      2    3\n",
       "x  - x ⋅y - x  - x ⋅y  + x ⋅y + x⋅y  + x⋅y  - y "
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expand(f2_b_factored)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "5c64aade-049f-4f7d-85bc-f2898e0efb06",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'(x - 1)*(x - y)**2*(x + y)'"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将符号表达式转化为str\n",
    "\n",
    "str(f2_b_factored)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "e9247102-c112-40d2-9c42-643ec954bebc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'x**4 - x**3*y - x**3 - x**2*y**2 + x**2*y + x*y**3 + x*y**2 - y**3'"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "str(expand(f2_b_factored))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "cec641f2-584c-45d8-89d9-cabe1c0e9629",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( 1, \\  \\left[ \\left( x - 1, \\  1\\right), \\  \\left( x + y, \\  1\\right), \\  \\left( x - y, \\  2\\right)\\right]\\right)$"
      ],
      "text/plain": [
       "(1, [(x - 1, 1), (x + y, 1), (x - y, 2)])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr_x_y = x**4 - x**3*y - x**3 - x**2*y**2 + x**2*y + x*y**3 + x*y**2 - y**3\n",
    "from sympy import factor_list\n",
    "factor_list(expr_x_y)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "848113b4-7b7f-44ae-a464-911b9f212511",
   "metadata": {},
   "source": [
    "### 判断两个多项式是否等价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "f44a5e44-b19b-42ce-8e24-329407139272",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAQCAYAAADNo/U5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAABE0lEQVR4nJXSv0rcURDF8c8uVop/QLBKQBT1DYxglQQkL2EfFARri2EEWwtFH8An0NYmVSRvoK4I6VKZICJ2bgrvyt0fu6CnOXBnvjPD5bS63a73aqT5kJkfsItvmMYfnCIj4h+06k2ZOY8LzOAMV1jGZ1xjNSLumpuOC7AVEYfVsH1sYw/f21VhDmv4jaPGsMAj1jNzrF0VvhQ/j4jnPiLiAT8xipUaWireaX5O0U3xxRqaLH4/BOq9T7WHNAxSq3i3hnqTJg3WRK+vhq6LLw6BFop3auhH8bXM7Ds7M8exiif8ei1GxC3OMYvNxpbEGE4i4rGZiA0vMTrIzK+4xCcvMepgh0b2yikfDQ/s34HQW/Qfnq1S3HXUdK4AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle 0$"
      ],
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import simplify\n",
    "simplify(f2 - f2_factored)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "81204326-d954-46a5-b456-44b71176090e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 第二种方法\n",
    "f2_factored.equals(f2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "8d7ff949-8510-4d35-89fd-a73abe681a6c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADIAAAAPCAYAAACm25zCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAABpklEQVR4nN3VT4iNYRTH8c9llljPTkliY2ZhYTGxEFNWE0rKZMGClWjU0Og4RRELZWkxSTaSPRaSsrGyUDYjapIaSyGLeS3ee3Xv3D9z32ncmXzrrfd5+vU8v1+nc55aURT+B4bW2kAvMvMY9mMUI9iMRxFxcql2XQfBjDLAd8xjZzfhhkE5WiEXsANbcK6XsKUimfkcB3E0Ip427dcwi1O4FRHTq+24ExHxsslDT+3SilzCIq5n5sam/TvKEPcHFaIqLUEi4h0eYhcmITOv4CIe4+ygDfZLp2afwXFcy8xNuIFnmIyIxUGaq0JbkIiYz8y7mMY9vMGRiPi93GGZ+QlbK9zfcZSuhG7jd6Hp/3RE/OjzvDn8qnD/lwranrQFycwTyub+imGct8zoaxARB1bLWFVamj0zD+MB3mM3PuBMZnZ9iNYLf4Nk5hieKF/QQxGxgKvKqt1cG3v9UyuKQmaO4BV+Yiwi5hqCzHyLPdgXEa8HaS4zJzBRXw5jHB/R8PEtIqZgKDO3K8drgfHmEHUu4wVuY+8/dd7OqPIhbmZb/YPPmII/a9h1jrsHnycAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle x - 1$"
      ],
      "text/plain": [
       "x - 1"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 化简\n",
    "simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1f02dd20-9647-4d1a-a8c2-7d5a1db25799",
   "metadata": {},
   "source": [
    "### 合并同类项"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "f7fc120f-abaf-4e03-aa40-046db47771f0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle x^{3} + x^{2} \\cdot \\left(2 - z\\right) + x \\left(y + 1\\right) - 3$"
      ],
      "text/plain": [
       " 3    2                        \n",
       "x  + x ⋅(2 - z) + x⋅(y + 1) - 3"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import collect\n",
    "\n",
    "expr = x*y + x - 3 + 2*x**2 - z*x**2 + x**3\n",
    "collect(expr, x)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d8c3f647-9499-4969-b791-d93f726b292b",
   "metadata": {},
   "source": [
    "## 带下角标的变量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "843202bf-12d8-4580-bc07-2528c6ae128c",
   "metadata": {},
   "outputs": [],
   "source": [
    "x1, x2 = symbols('x1 x2')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "73fab728-b113-4f5f-a2f1-06fec333f079",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEQAAAAQCAYAAACvDNlTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACPUlEQVR4nO3XT4hOURjH8c8MO5QlKxvlzwLFzp9IQ9kQScowxYKVEmVEj0eEhposbCyQnbChRJSVFIVCFpSkKDWlpCx4Le6V1zXyzvveGRZ+dbv3/L3f89xzzu/crkaj4b9+aPzfBoDM7MNZLIuIO3+T5aeAZOZN9GBdRFxpyu9SAG/B8YjYO6aUf1Cd3N2V9B58xeHMHNeUf6Ls9My/FoxStXH/FJCIeIwLmIVeyMx92IWL2N4x+iioTu7h9pD92ICDmTkRR3ADvRHxtTP0UVUt3F3DuUxmHsX3KXYXPRHxqVJniWKqzsdUrI+IS396YWa+wrRWAXE+Ivpaqdgidz/WYgY+4x76I+IJv3eZ903PW6udlpqAx4pN63IrwKUGMbmSNw+rcR6vKmWPRtB3K9xLcRr30YVDuJWZsyNi6JeAZOZGxWb0DlOwEzuq9SLiOq6XbVomjojBYd7ZpwjIuXZtdwTcKyvtevEBC3G1u1K4SvGVnmIOnmNbZs5sB3Ks1CH3JIW5DNHkMpm5CJfwBisi4j0OKJbVsToHUKdq4B5ULMt7lAHJzLm4ppg6PRHxFspN8gFWZ+biOgdShzrlzswBLFEYwhfozszpCntqYGVEvKy06y/vA3UOplN1yp2ZJ7EZyyPixff8YW23DbiGFm33X1BmnlKcWZZFxLPmsrYDUh5+ppfJh4ozyS0MRcTr9nFHV5l5GpuwBs3B+BgRH6v/MiPRAkUgHpbpgfL5UAd9joV2KJzlNt42XbvhGyKCBbnWvzAlAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle x_{1} + x_{2}$"
      ],
      "text/plain": [
       "x₁ + x₂"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f4 = x1 + x2\n",
    "f4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "4ee06b42-f0df-41c9-a114-1f61e534b09a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF0AAAAVCAYAAAAkeuLCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAD+0lEQVR4nO2ZXYhVVRiGn6NzoU5RZJhRFIU21U2SXgxUg5aj0U1iSAVORVkU9ANR4UTxziv94lRmYBcVaRH9oEYkSGEERmUlqFCOXVhm0mjCiKH9SHq6WHvbdrPPzFnHswedem/WnLW+9a1nvr3Ot769TqVarfK/mifbPYBy3XskTUw/tAwr0X9H3wPTM58PZwcLg277DeBa4AJJB0tDOwlleyqwEVgg6bUaZn9L2l3LRyWfXmxPA74GHpL0fLNgR5Jsvw+0A5MlHciN9QCPAPuAQ8AGoFvSjtRmVIHPp4DfgJfLQR4RehqYCNxfMPYV0EXIFHcCE4AvbZ+RGhyz021fBGwDXpV0V4nQJ71s9wHjgAslHR7ErhX4AXg2zRz5nH47UAHeLZj8MdAJ3CBpdaa/ArwO3Jo4Xnh8/05zVSL3O0APMBP4qJaRpIO2twKT0758eplJOGk3FMx/GDgCPGF7dKa/NwF/5UQLeKKyuD9P2s7BjGyPAS4G+tO+lsxgKzAF6CuqWCRtsf1mAtoFLLf9KPAg8B5wdwPgpatE7m+StiPbabsX+BDYScjnjwOtwIrUJrvTzwFGk3kiBXoM+BPosX0v8CThq9Ul6UiD8MOhpnNL2p/4PC83dC7wNqFWXw38BbRL+ik1yOb08Um7b5CFdtleAiwEXgK+AOZKOtQIeF62dwDnR0x5S9L8oYxK5B4AzsqtddNQk7JB/yNpxwwxZ2/m7zsk/Z43sN1ByKVTgbOBeZJWDgUDbCfsnnr1S4RtPdzdwFygjbBD0xr72xo+x/Jv3OpWNui/Ju34IsME6mbCAbSbUKc+ANxTYNoKbCFUB6vqhZF0Tb22MYrgng4sI+TrCrAIWGf7UkkDOZ+jgNOBH2N5skHvJ+yGthrg1xEOg++Aq4H1wALbL0ralrWVtBZYm8yLZWqqIrln5+Z2AfuBKwiHY1ZthAezOZbp6EEqqZoAnWl7Um7xK4GVwC5glqS9hFO5BXgmdtHhUhO4TyXEaKBgrD1pP43lytfpaSo4+sRtXwasITzxTkn9AEmO3ghcb/uq2IXLVpO4lxB2ctF7yyzCO80HsWxFQd8D3JKATyKUVlVgtqTtOfvupF0cu3CZaga37cWEGnxe/jXf9mnAHGCNpJ9j+YpuGbsJl16XS9oU6zAv21Xqr15OCNl+DpgPzJC0tWD8PmAp0CHps1j/RbeMLxDephbFOhsJsr2UwQM+lvBNWdVIwKFgpyeOO4AZQG8jP2LYPgVID+NNhJp9HTAgaWcjoMMh28sIAZ8DZAN+IL03t30JcCOwPHtHHqPCX44krSdUMo1qGsee6mnuXAHcdhx+y1Zau3+S6zfhRhFJfenfjeof+aepSSpJffQAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left(x_{1} - x_{2}\\right)^{5}$"
      ],
      "text/plain": [
       "         5\n",
       "(x₁ - x₂) "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f5 = (x1 - x2)**5\n",
    "f5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "65150697-2cde-4e68-b16f-05010bf2e42a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaQAAAAZCAYAAAB+b1oqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAJG0lEQVR4nO2de6wdVRXGf72Q2HjBEjVaExKwVGokyE0o2gLWWwgtPhKLgEbThhqoQiBWKSa9iK5+BhBDJVeURsGE8gpoKpYYbGxaEF/VQFKQhxQLXPEBitYSWpUGuf6x97HT6XnNzN7nzNwzX3Jy7pm9Z81a36y99nvfaZOTk+SFpDWApS7/1cxm5hZaAUi6HLgKuMHMLum3PlMZki4GPgMc7S89DlxpZvcWlDsGfBSYA7wC/BoYM7PHisidKojFT6z3OaioWizqVGcMBXjGDuBtic/xAWSWFpLmASuA3/ZblwHBn4DVwInAXOA+YKOkdxeUOwqsA04GTgNeBbZIemNBuVMFo8ThJ9b7HDhUOBa1rDMODSD8VTN7IYCc0kPSDOAO4Hzgy31WZyBgZvekLn1R0kXAfAoURDNbnPwtaRnwEnAK8KO8cqcKYvET630OGioei1rWGSEqpFmS/gzsY3+3fiKA3EyQNAEc1SI51DDijcAGM7tPUtWcoCMknQO8HxgBTgAOB+4ws6Vt7jkS+ApwJvAm4HlgIyAz+2dg/Q4BPgYcBvwqpGycrUPArsByOyIP7/6+nnFPBH4iv89unj9B/JgRC1WORS3rjKIV0m+AZcBTwFuBMWCbpOPMrOcFG9eCG29yfU9RwZJWALNx9k5VXIELiHtwQyvvbJdZ0jG4QPIW4B7gSeA9wErgTEmnmNk/iiol6XhgGzAdeBlYYmaPFpWbwjjwMK6A9BqZeIfecZ/AOIH46dH77BbRYkYsVDwWta0zClVIZrYp8fNRSduAZ4DlwHVFZOfEbjNbE1qopDnA1cD7zGxfaPmhIGk5cDOw0Mx+mkPE53EBcSeuxX5/h/zrcAHxs2b2zYQe13lZVwEX5tAjjR243sMRwNnArZJGQy1AkHQtsAD3fv8bQmZGZOUdesd9DH6Cvc8APh8lZsRCVWJRK3SqMw6okCRtBs4AzjazuxPXp+Fe+nnA18xsdYuH7ZX0BPCOoFZEQEZb5wNvBh6T1Mh6CLBA0oXAsJm9klN2aWBm/w+ECTubQtIsYBEwAdyQFgV8GlgmaZWZ7U3cl5kbX/B2+p8PSToJ+BxwQRG5Pv3rwFJcQNtJH5CFd58nM/cx+ckqu5v3WVbEKNsxY1FshK4z0qvsvgC8Blzpx3cbWOsF39SOaEnTccMNz2c1LBBeJ2mppMslrZS0MGVHElls3YhbCTKS+DwE3OX/TrdUCvFYEZzmvzeb2WvJBDN7Gfgl8HpgXuq+ENwM4YZ7CsmVdD37g+0THZ5ZJuThPiY/Rd9ps/fZK2SJGRCnbMeMRbERtM44oIdkZo9Ius0LWgas9+vcLwW+T2oIQNJa3Iqb53DDB18ChoFbChhYBDOB21LXnpX0KTN7IHkxi61mthvYnbxf0l5gV7Nhhqw8VhRz/PdTLdJ/j2vFHwtsbVzM4WPXAPcCf8RNrH8StyT5Q8l8OeSuwwXbJcAuSY0J7D1mVtr5A4/M3MfkJ4vsbt9nD9F1zIA4ZTtmLIqN0HVGs31IVwD/AdZIugQ3Fv0TYFm6NQYcCdyJGxO+G7eBbp6Z/aG4qZlxM3A6zsGGca2I7+A24G2SdEKTe7LYmhUxZZcBM/z3Sy3SG9ePaJKWhZuZwO04H9sKnAR8IDUWnUfuRbiAuBXXOmt8LmthT5mQl/uY/HQrO8v7jI08MQPilO0qx4tgdca0Zic1SPoqbvMauJU8Z5jZv0Jpr/bLLZuh4xLYNs9aC6wCNprZWU3So9kaWfYE2Ti8xcyWZ5A/iptcb8q9pBtxm/JWmNl3m6RfjVtBM2Zm1zRJj8JN1X23E+8+T27uq+rvXv4EEX0+8Zy2McPnCW5rCfnr2ndD6d5qld2Lib/PD0mKx9O4GrVb/KXAs76Nc64FLdJj2tpRtvIf0TLOwS3gEeAjuO7vRCrt4e5U7hqNVviMFulvSOVLIxbvU8l3W6EI933194IYpzc+3ylmQHdlewFujuVE3IkE55rZhiIyCyKm7wbR/aAKSdIncBNSL+C6sitx3fdgMLPTQ8rrgL/57+F0QkxbM8gexS3hfRCYhtvouEXSu6zNXi4zG2/yzOW4wrk+5xLYLNjhv49tkd5YaXnQPEcs3qeg77ZCLu5L4u+50UOfbxkz/DO7tXUYeAQ3NPiDdg+ssu+G1D297PuDuJbG47iVPD8DLpD0DTN7MpU3a+3fL8z3388kL8a0NYtsq+4RNo2lyoskDSXHiiUdjtP/36Q2UsbiPaPcqh+smpn7Mvh7hXhvGjMgc9neBGzy97V8WJV9N7TuQ4nMpwIbcBv0FpnZi7gVEIcCB80BsL/27/sJs5KOU5NDHyUdBXzL/7w9cT2arTlkp9G3I2yywMyeBjbjJoAvTiULx9mtduAepCi855A7SoUPVs3KfYn8fZSS8J41Zvi0omW7mR6V9d0Yuk+bnJzEryZ5ANeqOtU7fOOhD+JO5V1gZj9vodgkfewhyR1pvhrXcnwWdxzJMbilpNOBHwNnmdm+mLYWle3zfQ83FDPXMu6KV8Fd65KW4Jb5gut6L8a1Ehv6/t3MLkvkTx9f8zvgvcBC3HDRyeaPr4nFeyDOD8P1SpeYWc97pVl59/d0xX2Z/T0E73l9PkvM8PmD81hl342l+5Ck2bglepPA4qRgjzH/fW0oYyLgfuCHwNtx+xouxR3B8gvc+vgP+8oomq0hZGv/ES3nZq2MAmEEx9d5uKAIMCtx7ZxkZm/jXGA9LhiuwhXq64H5icooCu8B5fa7VzpCBt6hO+7L7u/0l/euYgbE8d8q+25M3Zsu+86hYF97SL1ELFt14BEtVTo1oCeI6WNFeqVTHTXvYRAxblSWw2a6h/j3EzUKQu6Ilo9TV0Y9h/p/sOpAoua9OKrMYSvd6wqpz1C1j7CpNFSCg1UHEYPCu58jmZ24dLSkEdwxP88VlF1ZDtvpHuJfmNcohiofYVNZqLoHq1YaA8b7XGC7/4CbU9mO22uYG1XmsJPuueeQUrX/dty+hS0EqP3LhkGytUyIxXuqV5osFHWvlJr3MqPKHHaje5EeUpTav6QYJFvLhFi8173S9qh5Ly+qzGFH3YOssqtRo0aNGjWKop5DqlGjRo0apcD/AO21/hCt/syXAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle x_{1}^{5} - 5 x_{1}^{4} x_{2} + 10 x_{1}^{3} x_{2}^{2} - 10 x_{1}^{2} x_{2}^{3} + 5 x_{1} x_{2}^{4} - x_{2}^{5}$"
      ],
      "text/plain": [
       "  5       4           3   2        2   3          4     5\n",
       "x₁  - 5⋅x₁ ⋅x₂ + 10⋅x₁ ⋅x₂  - 10⋅x₁ ⋅x₂  + 5⋅x₁⋅x₂  - x₂ "
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f5_expanded = expand(f5)\n",
    "f5_expanded"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f44b239-848f-4356-ba23-ff3dd5650706",
   "metadata": {},
   "source": [
    "### 提取系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "22d275a3-f322-4e45-b2ae-816294b60b27",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[ 1, \\  - 5 x_{2}, \\  10 x_{2}^{2}, \\  - 10 x_{2}^{3}, \\  5 x_{2}^{4}, \\  - x_{2}^{5}\\right]$"
      ],
      "text/plain": [
       "⎡               2        3      4     5⎤\n",
       "⎣1, -5⋅x₂, 10⋅x₂ , -10⋅x₂ , 5⋅x₂ , -x₂ ⎦"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import Poly\n",
    "# 导入sympy.Poly，简做Poly\n",
    "\n",
    "f5_expanded_x1 = Poly(f5_expanded, x1)\n",
    "# 将x2看成常数\n",
    "\n",
    "f5_expanded_x1.coeffs()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "c7374029-479f-4d62-8dce-a4f5c5e5d433",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[ -1, \\  5 x_{1}, \\  - 10 x_{1}^{2}, \\  10 x_{1}^{3}, \\  - 5 x_{1}^{4}, \\  x_{1}^{5}\\right]$"
      ],
      "text/plain": [
       "⎡                2       3       4    5⎤\n",
       "⎣-1, 5⋅x₁, -10⋅x₁ , 10⋅x₁ , -5⋅x₁ , x₁ ⎦"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f5_expanded_x2 = Poly(f5_expanded, x2)\n",
    "# 将x1看成常数\n",
    "\n",
    "f5_expanded_x2.coeffs()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "7b9ee5a9-367d-4c5f-b4e8-7f99c871f93b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAARMAAAAUCAYAAACu29m0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAEMklEQVR4nO2cXYgWVRjHfxtB0WJKRXgRKUofEOIGUYnUVgsidWNQd0ZehRQUokhQ8PgPuisRs6irJOu+LioQareo6DqCMtsyiKJaS3G1oHS7ODM6O8y87sw755yZ1/nBct73zMd55rfPnPfM59jCwgI9PT09w3JZ7AB6enpGg8vTD5LuA6Yz046Y2a2hA+rp6Wkvkq4D/sjWmdkYZDqTDJ8AM8BcbiWPAJPABLAeWAa8Y2ZbG484IJKOAatKJv9mZis9tVvLp6QbgBeAzcC1wK/Au4DM7C8fsfqmjosYHmLlim8q+j8DKPm8jYyPos5kxsz2FNQ/nzQ0D/wMjNKo5SSwr6B+3mOblX1KWgt8AVwPvAd8C9wJPANslrTRzI57i9gflVxE9hAjV3yzZP9mdgbYA+ePZgZ2JmXsSBr6HteLTQ+evVOcKOlAfVLH52u4HehpM3slrZS0N1nfi8D25kP1TlUXMT3EyBXfNLJvL7kzMbPzDUgaNGvPEqjqU9IaYBNwDHg1vzrgCeAxSTvN7HRzkfqniotR9hCLpvbtKiOTUeYKSVuBG4HTwFfAp2Z2Nm5Yi3ggKQ+b2bnsBDM7Jelz3E52N/BR6OACEttDF3IlCv2lYcdK4BBueLwP+Bg4KmkyZlA5bknK70qmH03KmwPEEpPYHrqQK1HoOxN4E5jCJck4sA54A1gNfChpfbzQFrE8KU+WTE/rV/gPJSoxPXQlV6LQucOci1yeK2LgJUYzyx8kfg1slzQP7MSduX64YpgxGEtKr7c0N+3fA948tCFX2uy/c50JMAv8U2H+X2q28zouQe6tuXzTpL+4y0umX52bzxeh/JfRFg9ZQuZKbP+ldK4zMbOpQE39npTjgdq7GEeSsuxcwE1JWXYuoREC+i+jFR5yBMuVFvgvpT9nUs6GpPwhahQXSC/fbZK06P8maRmwEfgb+DJ0YIFpo4e25UoUvHYmkg5KWpC0zWc7dZF0m6RrCupXAQeSr28XTA++XWY2CxzGnex7Kh8S7lfxrey9FW33X4c6HmB4F3VyZRT9D2LJhzmStgBbkq/pMwgbJB1MPs+Z2a7cYmln9V/N+HzzKPCspGngR+AUsBZ4CLgS+AB4qWC5oberps8ncbeR75c0BXwD3AXcjxvWP9d0nCGo4aKqBxjeRZ1cGVX/hVQ5ZzIBPJ6rW5P8AfwE5Btch5P+foV2QjKNu2/hdtxQdRw4AXyGu5fgkJkVXRVoYrsmqOjTzGYl3cGFB9wexD3gth/3gNufHuIMwQQVXNTwAMO7qJMrI+m/jLH05UiZVxCoiWcPJK0AjgMvm9nuYdfXFrqyXV2JMwQxXFwK/iXNAJODXkFgkozh32dyD/AvsHeIdbSRrmxXV+IMQQwXI+m/6H0mKdmRyWrc+wlS5szsQMEyPT09lyiSrgIWjbTSI5n/AZ2yFZHnv1PaAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle \\left[ 1, \\  -5, \\  10, \\  -10, \\  5, \\  -1\\right]$"
      ],
      "text/plain": [
       "[1, -5, 10, -10, 5, -1]"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f5_expanded_x1x2 = Poly(f5_expanded, [x1, x2])\n",
    "# 将x1、x2都看成是变量\n",
    "\n",
    "coefficients = f5_expanded_x1x2.coeffs()\n",
    "coefficients"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "4f272096-7dba-4e91-913f-170d53783a11",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "list"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(coefficients)\n",
    "# 判断结果类型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "d18e9b4e-6513-4b34-b89e-a11507a4583c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "sympy.core.numbers.One"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 判断元素类型\n",
    "type(coefficients[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "8ce1ac59-daa6-4164-b132-51acee234520",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将数值转化为浮点数float\n",
    "\n",
    "coefficients_float = eval(str(coefficients))\n",
    "# 先将coefficients 转化为str，再转化为浮点数\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "b6a8bd61-7ad4-4fdd-8e41-7c8c7aeec026",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<StemContainer object of 3 artists>"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.stem(coefficients_float)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c28ac7f4-8165-4d54-831c-b7588889c973",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "442dbcd1-caa8-4535-8c2d-bdb72f49cd21",
   "metadata": {},
   "source": [
    "## 解等式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "fe43566c-a398-4aac-8cfe-444279dae540",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAUCAYAAADFlsDIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACB0lEQVR4nO3YvWsVQRTG4SeawlJQsLAQOwvjfyBEAoIIgko6NVoLIWAhCHJyBMFGxUoLIWksrSSijSbYCYKgiApCsFBR0UII4lcs7r26Jjfxfmw2V/BtZnZmmN/Zd2dnd07f/Py8/2pNa1Y7gH9J/Y1KZg7ibqHvWURsqzqg1VZmbsS7YltE9FEwq6AZTON9yUFswH7sxQA24wseYQITEfGjTGaH3DlkvX4UWxodzcyajojxsoPGMC7jtdoKfolNOICr2JOZwxFR9ibaFjci5jDOr7dtWbNWSs+xD1PFJ5mZp3AfB9Vu4HqvciszKyLuLNH+JjOv4CwGlWxWmdxe+Rp+rZffepm76mZlZj+O1C9v9TJ31c3COWzHzYi43cvclveszJxV+DK0oGsRcegvc47iBJ7icBtzd6VOue1s8C/wuY3xr5brzMzjuIQnGIqID23M3bG64bZsVkQMdRBbU2XmGC7isVrAb8uaeyW5le9ZmXlSLeCH2FWhUV1zq/wplZmncQYPsLuVVyAzJzGCYxExWRW3mSozKzNH1AL+jnsYzcyFw2abGNJY/R39g3XBXaQqV9bWerkWY0uMmcHkgrYBfMJUxdxFqvK4M65+QG1VmbkeO3A+Ij5WxV1KzcyKzAy9kc/aqXYkuVAVsFk+q6GiWbN+53EoOZ/ViSLiBtZVjC3ms/7QTx5045MkGXPbAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle \\left[ -2, \\  2\\right]$"
      ],
      "text/plain": [
       "[-2, 2]"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import solve\n",
    "\n",
    "equality = x**2 - 4\n",
    "solve(equality, x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "7bcf322f-e379-4df2-b3bf-5ae6bcda3618",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE4AAAAUCAYAAAAjvwuMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACgUlEQVR4nO2YT4hNYRjGf9co1GDMSjbKQsif8SclDYPUlIVZsEFJFtj4U7IZee6zsvGn2JDNFErJwsJCFmajJMpiRDOpq4wUUmOEBtfinJM759573DvuuffKPHV7z/3e97zf8z29fd97vkw+n2cS1WNKown8q5ia5LS9CzgMLAZagdWSntaBV8NgOwv0Ah+Ah8AJSYPxuLLC2V4CXAM+AzeBYeBtCkR3ABuBDmAFMBO4LmlPg3L3A9PDd7YD84C18aCkitsEZIBeSRcmwLtSnCRY1CjwGljUyNyS+gnEw/YTYI3tVkmjhXFJe1x7aJ9Xz7cqHAMWArOAQ02W+wVB8cyJO5IqriW0YxOYsGJIuh8922623NHaW+KOyVN1gkgSri20X+rAo1nxNbSz446SwtnOAJ1AHniVHq+mRy60XXHHuD3OdjewFdgArAIuSyrbgtjOAfOrIFKTNqOOuAocBM7YXg8MAVck5eKHQzdwJHweAC7+IfFLfpdzJXhTRWzDIWnY9mngPLAzHL4HjBdO0lHbpwh6uBvAXdvzJf0ok3hLirwbDtvbgEvAA+AAMChpDEq0I5JGgNu2bwG7CT63BupHt6mwObRZSc8KHUl9XHQotCfENAS2+4C9wD5JfSlOFTW+ubgjSbio+Uu117PdA/SEf+eGdl0oDsB7Scdjr0WcvqeQu6J5koSr10VdB0H1FGJB+IOg8uOLWwZ8Au6kkLsUirRIEu5baIu+02oJSVkgW2m87TZgOXBW0sda5i6BaO1FnUOScEOh3W/7MTAs6edfkKgVOgm2kXNpTWB7GsGtShcwAryLx2TKXZ3bngE8ApYWDK/8Ty4yVTCUlVR0Q/ALmXnGGWVxZNAAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left\\{-1, 1\\right\\}$"
      ],
      "text/plain": [
       "{-1, 1}"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import solveset,Eq\n",
    "\n",
    "solveset(Eq(x**2, 1), x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "6dc6b674-e76d-47c2-ae3f-ec9cb566c24d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE4AAAAUCAYAAAAjvwuMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACgUlEQVR4nO2YT4hNYRjGf9co1GDMSjbKQsif8SclDYPUlIVZsEFJFtj4U7IZee6zsvGn2JDNFErJwsJCFmajJMpiRDOpq4wUUmOEBtfinJM759573DvuuffKPHV7z/3e97zf8z29fd97vkw+n2cS1WNKown8q5ia5LS9CzgMLAZagdWSntaBV8NgOwv0Ah+Ah8AJSYPxuLLC2V4CXAM+AzeBYeBtCkR3ABuBDmAFMBO4LmlPg3L3A9PDd7YD84C18aCkitsEZIBeSRcmwLtSnCRY1CjwGljUyNyS+gnEw/YTYI3tVkmjhXFJe1x7aJ9Xz7cqHAMWArOAQ02W+wVB8cyJO5IqriW0YxOYsGJIuh8922623NHaW+KOyVN1gkgSri20X+rAo1nxNbSz446SwtnOAJ1AHniVHq+mRy60XXHHuD3OdjewFdgArAIuSyrbgtjOAfOrIFKTNqOOuAocBM7YXg8MAVck5eKHQzdwJHweAC7+IfFLfpdzJXhTRWzDIWnY9mngPLAzHL4HjBdO0lHbpwh6uBvAXdvzJf0ok3hLirwbDtvbgEvAA+AAMChpDEq0I5JGgNu2bwG7CT63BupHt6mwObRZSc8KHUl9XHQotCfENAS2+4C9wD5JfSlOFTW+ubgjSbio+Uu117PdA/SEf+eGdl0oDsB7Scdjr0WcvqeQu6J5koSr10VdB0H1FGJB+IOg8uOLWwZ8Au6kkLsUirRIEu5baIu+02oJSVkgW2m87TZgOXBW0sda5i6BaO1FnUOScEOh3W/7MTAs6edfkKgVOgm2kXNpTWB7GsGtShcwAryLx2TKXZ3bngE8ApYWDK/8Ty4yVTCUlVR0Q/ALmXnGGWVxZNAAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left\\{-1, 1\\right\\}$"
      ],
      "text/plain": [
       "{-1, 1}"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(Eq(x**2 - 1, 0), x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "12645e58-d34b-46ad-8ec9-6ec535c8db67",
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,c = symbols(\"a,b,c\", real=True)\n",
    "\n",
    "equation = Eq(a*x**2+b*x, -c)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "81020ace-0781-4c82-8964-d015bcf14c52",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAYAAACEYr13AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAAgUlEQVR4nO2UMQ7CMAxFXyuOwN61x+AovcmvT0Z6DDZ2OncNAwEcmooha95kxfKLZcnuYozU0FdVA6d3YGYX4OpyN0ljyp2Bhy+U1GUCxwIEYHVvG2ApnoBh14EjSJp/ftuA2XX6EVTPoAmaoAlelLZRZib+3IOS4M535+H4HmQ8ATaYI2kok+bYAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle \\left[ \\right]$"
      ],
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solve(_, x)\n",
    "# _ 是上一个cell计算结果"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "caf7b90e-8eca-49b6-9ff3-7d09e127861a",
   "metadata": {},
   "source": [
    "## 阶乘、组合数、Gamma函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a41921c-4c10-41ff-93eb-c7a1f8d3153b",
   "metadata": {},
   "source": [
    "#### 阶乘"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "4828e007-260d-4994-9ac0-8433dd86d7c7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACYAAAAQCAYAAAB6Hg0eAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACPklEQVR4nM3VTYiWVRQH8N/YrJJpBEECXdgMjhtDF0GhixqDDAUZs3altAumJkMhkORwhAFXfjRDG4UZgjZBoAtD3UhE9gGCYKhNTRgkRoyGhAR9jYvnvvrOw/tO0LyiBx7Oc8/HPf9z7r3ndM3OznoYqbt5kZkv41msw1r04KOIeLXumJlLsQ1b8CSW409cxAQmIuLfVkEzcwX240UsxXUcR0bEb7Co5vMe3izArv1HUq/gKJ7G1ziMT7AGx/BxZna1ANWP83gd3+AQfsTb+LIkPLdieAc/4wdV5c7OA2wKW3GyuTKZubcE3I6XCthm+gDLMBIRY01+B0v8UbzR1e6OZeZzBVjLo5yPCrhRjEfEW03yPkzjKvprCfWojrQLy+pH2Sn6q/C/a/KNhZ+p37+I+B1f4FE803FgmdmNHWV5qqZeXfhUG/fvCx+4HxU7oHoAn0bE6Zqut/BbbXwb8iUdBZaZI9iNK3jtf2zReMWzHQOWmcM4gksYjIibLcwaFeltoYPHGnYdAZaZuzCObwuoX9qYflf4QBv9qsKnFgwsM99VNckLBdSv85g3+uILmTkndmkXG/AHvloQsMzcp7rs5/F8RMzMZx8R0ziDlRiub4fF+DAibs9psJk5hKGyfBybVOPi8yKbiYg9xXYnJvEPxrR+aVcjYrKWTD/Oqbr/CVxWjbVBVRtZHxE36iNpHXbWZH3lg5+wp/w/Ufgj2NUCFHxWwN+liJjOzKfcG+KbVR3/fdUQvwltR9KDpjuPMbqOoYCiWAAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle 120$"
      ],
      "text/plain": [
       "120"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import factorial\n",
    "factorial(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "79b400ae-0ea6-4789-ba8b-ef5dd6407f9e",
   "metadata": {},
   "source": [
    "阶乘是一个正整数的连乘积，通常表示为$n!$，\n",
    "其中$n$是一个非负整数。阶乘的定义如下：\n",
    "$$ n!=n \\times (n-1) \\times (n-2)\\times ⋯\\times 2\\times 1$$\n",
    "例如，4!=4×3×2×1=24。  \n",
    "注意，0的阶乘为1，即0! = 1。  \n",
    "阶乘在组合数学和数学分析中经常出现，是求排列和组合数的基本方法之一，同时也用于定义各种数学函数，如Gamma函数和Beta函数等。  \n",
    "阶乘还出现在各种算法和计算中，如计算机科学中的递归算法和概率统计中的二项分布、多项分布、Dirichlet分布等。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "16feb174-f6d2-410f-8c28-aba322b9611b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAPCAYAAAARZmTlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAABRklEQVR4nL2UIUsEURSFv1Wj/8GyYQ3iH9AirIJF0CCGxWCxCYKgohwPKCgaBKPBYJNFDBaNBpPFpAbbgsImFQyGHcM8ZNjdmXVY9MBl5l0u55vz3mMKURTx1+rp1sB2ZDvzS7uG/Eb/AulLLmxfA2VgRtJ5ol8AToB5YE/Sah5Ic5IVoAFs2+5N9A8C4DgvoAUi6R44BQaBCoDtdWAZOAMW8wKgabuCNoBZYMt2P7ADXAEVSY0281GoVLUcvKQacAgMAEfALTAt6SvF4yNUqtolAagn3hckfWZ4vJE3ie054oN+Da2lLIMAec8aKCR/K7YngQvgCRgDboAiMCTpsQMsVT9JbI8AVaAGjEuqA5vEW7qbZmC7ZLvUEWJ7GLgkjl6W9AIgqQrcAVO2R1M8HkKlQ2wXia9oBExIem6aWQvP/SyjLH0DwMtlhIu0xegAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle x!$"
      ],
      "text/plain": [
       "x!"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factorial(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aff42560-4e83-416f-9f17-3e076ddebcc4",
   "metadata": {},
   "source": [
    "#### 组合数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1f81756-7027-4d12-adf6-f319f0ca3653",
   "metadata": {},
   "source": [
    "这一句的作用是从 SymPy 库中导入 binomial() 函数。  \n",
    "binomial() 函数是计算组合数的函数，用于计算从 n 个不同元素中取出 k 个元素的组合数。  \n",
    "组合数通常表示为 $C(n,k)$ 或 $C_n^k$。  \n",
    "$$ C_n^k = \\frac {n!}{k!(n-k)!} $$\n",
    "binomial() 函数的参数为两个整数 n 和 k，返回值为整数型或 SymPy 的数值类型，表示从 n 个不同元素中取出 k 个元素的组合数。  \n",
    "该函数在组合数学、概率统计、数学分析和计算机科学等领域经常被使用。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d7e89d69-2721-48f5-b9e3-910cb46758f8",
   "metadata": {},
   "source": [
    "$$ C_5^4 = \\frac {5!}{4!} = 5$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "70545a98-faa0-4548-8031-68c95a13842d",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import binomial"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "b2559de9-6e83-4aee-a272-b9b97f40d488",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAQCAYAAADNo/U5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAA7UlEQVR4nJXRoU4DYRAE4K+EBJI6VBUlQSAIIUgMCCQKgeMtMLhlBa4CgQCFKA+AAkcTwhNgSQALqgSQ5BA9Qctd046Z7P47mf13GkVRmBazf4vMfEW7ZvYtIlr/RCU+cFrR/6p0KtGPiONx682Me6xDldNcZh5gEd94xH1E/IxzaqGLE4O/3eEpM7frRJfYKYVNrOECS7jNzHVoTJJTZnZwiOuI2Jv0EOclb1WtV4f3kpvTiDZLfh4SZeZqZi6MTmdmG2dlecVwTvs4ysweXvCJZexiHjfojIp6WMFGuU4TfTwY5NaNiIIJTz6KX8qHP3L4i4f9AAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle 5$"
      ],
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "binomial(5, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "c0d97bf9-580c-4848-b25b-8ee67da912fb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAQCAYAAADNo/U5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAA7UlEQVR4nJXRoU4DYRAE4K+EBJI6VBUlQSAIIUgMCCQKgeMtMLhlBa4CgQCFKA+AAkcTwhNgSQALqgSQ5BA9Qctd046Z7P47mf13GkVRmBazf4vMfEW7ZvYtIlr/RCU+cFrR/6p0KtGPiONx682Me6xDldNcZh5gEd94xH1E/IxzaqGLE4O/3eEpM7frRJfYKYVNrOECS7jNzHVoTJJTZnZwiOuI2Jv0EOclb1WtV4f3kpvTiDZLfh4SZeZqZi6MTmdmG2dlecVwTvs4ysweXvCJZexiHjfojIp6WMFGuU4TfTwY5NaNiIIJTz6KX8qHP3L4i4f9AAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle 5$"
      ],
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factorial(5)/factorial(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "a88bd4f4-ae8c-4822-94ad-6ff6e325e6f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAQCAYAAAAI0W+oAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAB4ElEQVR4nL3US6hNYRQH8N/ljsijlAkD3DBhpojRpSRKIUNkpm5eGSil1VK3jLwzoe7NUCkGhIkMPEsp8rgiM5JHkpTXMdjfYZ/jHO5A1uS/99rfWv//2mt9q6fRaPgf1tt8yMwpWINVmI9p+Ix7GMJQRHxvT5CZ07EPKzAFL3AWGRHvmufG1GLW4wQW4hYO4Qzm4SROZ2ZPG0kf7mAzbuMgnmE7bhTxrRVhBKtxvq48M/eUJOuwtpA37TimYltEHK3FHMBODGIL9IymR4VsEMciYmvxzcJTPEdfm7gJql/Yg6kR8XHMb1k725eCX2u+pQUvt/cuIj7gGsZhEa096lZNLzaW14u1T3MLjnQJfVJwzqiIsF81EBci4lLNP6ng+y5xTf/kvxJl5jbswiNsGIWoujUntPFHoswcwGE8QH9EvO2ieJLONrF+riNRZu7AMdwvJC87HHtccE4XotkFRzoSZeZu1cW7W0hedUl0peDyzGzJU8Z7CT7h5m9EmblX1fw7WBYRr7uQiIinuIwZGGjXi/E4FREfqV3YzNyEYXzDUZ2n6XlEDNeE9eG6ajucw0PVCutX/bLFEfGG1hU0s+BY7OhSyNUi5mdVmbnAr6W6UrURjqiW6s8BGtUK+hf2A/zepKzScCvGAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle 20$"
      ],
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "binomial(6, 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "8751ee8a-4581-436e-93fe-f41e9680235e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACYAAAAQCAYAAAB6Hg0eAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACPklEQVR4nM3VTYiWVRQH8N/YrJJpBEECXdgMjhtDF0GhixqDDAUZs3altAumJkMhkORwhAFXfjRDG4UZgjZBoAtD3UhE9gGCYKhNTRgkRoyGhAR9jYvnvvrOw/tO0LyiBx7Oc8/HPf9z7r3ndM3OznoYqbt5kZkv41msw1r04KOIeLXumJlLsQ1b8CSW409cxAQmIuLfVkEzcwX240UsxXUcR0bEb7Co5vMe3izArv1HUq/gKJ7G1ziMT7AGx/BxZna1ANWP83gd3+AQfsTb+LIkPLdieAc/4wdV5c7OA2wKW3GyuTKZubcE3I6XCthm+gDLMBIRY01+B0v8UbzR1e6OZeZzBVjLo5yPCrhRjEfEW03yPkzjKvprCfWojrQLy+pH2Sn6q/C/a/KNhZ+p37+I+B1f4FE803FgmdmNHWV5qqZeXfhUG/fvCx+4HxU7oHoAn0bE6Zqut/BbbXwb8iUdBZaZI9iNK3jtf2zReMWzHQOWmcM4gksYjIibLcwaFeltoYPHGnYdAZaZuzCObwuoX9qYflf4QBv9qsKnFgwsM99VNckLBdSv85g3+uILmTkndmkXG/AHvloQsMzcp7rs5/F8RMzMZx8R0ziDlRiub4fF+DAibs9psJk5hKGyfBybVOPi8yKbiYg9xXYnJvEPxrR+aVcjYrKWTD/Oqbr/CVxWjbVBVRtZHxE36iNpHXbWZH3lg5+wp/w/Ufgj2NUCFHxWwN+liJjOzKfcG+KbVR3/fdUQvwltR9KDpjuPMbqOoYCiWAAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle 120$"
      ],
      "text/plain": [
       "120"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factorial(6)/factorial(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "114f2e5a-27a7-4dab-a0e2-81b12285541d",
   "metadata": {},
   "source": [
    "#### Gamma函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f3b427c9-33fc-4e76-8445-3397e829d84a",
   "metadata": {},
   "source": [
    "Gamma函数是数学中的一种特殊函数，通常表示为$\\Gamma(x)$，是阶乘函数的推广。  \n",
    "它可以看作是从正整数阶乘函数$ n! $（$n$为正整数）推广到实数、复数和甚至负数的一种函数。  \n",
    "Gamma函数的定义如下：\n",
    "$$\\Gamma(x) = \\int_{0}^{\\infty} t^{x-1} e^{-t} dt$$  \n",
    "其中$x$是一个实数或复数。  \n",
    "$ \\Gamma(x) $ 在实数$x>0$时被定义为阶乘函数的推广，即$\\Gamma(x) = (x-1)!$。  \n",
    "Gamma函数具有许多重要的数学性质，如对于正整数$n$，有$\\Gamma(n) =(n-1)!$；  \n",
    "对于任意实数或复数$z$，有$ \\Gamma(z + 1) =  z \\Gamma(z)$。  \n",
    "Gamma函数在数学物理学、概率论、统计学、数论、组合数学等领域广泛应用。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "bfd16a72-1616-4f38-850d-fa1bdb5a920f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAPCAYAAAD6Ud/mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAABmklEQVR4nL3Uz4uNURzH8dcd9w9QlrKwVCxYjI0FIzZKIcsxKyt1u0WpqfH1VWo2YrJRRiN2auyIjfKjJkopErOSleTHRsnPa/E8t67Hc587LHw35znP55zP+/s95/Rt9Xo9/yPa/Y/MXIN92INNWIuveIoFLETEzyazzJzElXJ6OCLm+9rYwLqDuIiteIhzWMRGzONaZrYaIOtwHp8aK8Iy9uLGYOaZOY1HOID9JbwKaSmqfo/rODYUFBF36jKJiDeZeQGnsb0OhA4mSn2izmes7mdNfCvH71UhMzdgFnMRcW+YwUhQZrZxqJzeqtGu4jWmm3zaTWIZs4oHcTMible0E9iMbRHxucmksaLM7OAoXmCyoo0rqjgTEUujsh0KyswjmMNz7IiIDwNa/8iWMTMKAq26zpCZXZzFM+yMiLcVfTU+rgSgeCTdP+4oM48r7uUJdkXEu5rNX3BpiPEWxb09wEssUakoM2dwCo+xe/C4VhqZeRKh0oIGe91UCfmB++hkZtXnVURc/lv4byCsL8dV6A5Zfxf/BPoF8duHDdHWqwUAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle 24$"
      ],
      "text/plain": [
       "24"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import gamma\n",
    "gamma(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9729953e-c610-4ce5-998d-5515fb65769c",
   "metadata": {},
   "source": [
    "$$\\Gamma(5) =(4-1)! = 4 \\times 3 \\times 2 \\times 1 = 24$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3084e82b-1cf1-4b0d-94c9-95fe61b23581",
   "metadata": {},
   "source": [
    "## 函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b9405a8-8345-4525-b3f2-073ba937b269",
   "metadata": {},
   "source": [
    "### 引入更复杂的符号函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "3b2d7fe6-448c-49f2-b79d-89e9c9ad199c",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import exp, cos, sin, sqrt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "24809abb-b01b-43c5-aff9-0436a4ed504e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACkAAAAXCAYAAACWEGYrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACY0lEQVR4nM3XT6hVVRTH8c99KkVBg4omUU1C8GE46I8gSihlKU7KjBqYRE0KygZNCuvXGohFg3gQTYLKFAxKo6iQeP3BwWvi6AnNfc1KnAQ5sLoNzrmP4+XWu6G+d3+Tfdh7rb2/Z+291j6n1+/3TYKq6jYcwS24iEpyAqZWEmxIf2J/kmk8iJmqug56kxLJYVXVPHYlWZikSC6qqu7BGvzCZG03qKqb8DGeSdKH1cu4+B4cxdokZ9u+GezEpiS/VdU1+ByHkswNfJczkp/hDA60gC/jCTzcAvbwEb5PcqTruKyJU1Xb8TVew6vYluR0O7YZpzDfcdmb5MxlQVbVG8gSZluT/NjxmcN9msw9Oc46l3sm38UnS9gsDB6qahs2aI7Zr8OGVfUltuC7JI/9J2RV7cazuBc34Cw+xFtJ/hrYJTmHc+O8TVVtwAk8j0dwEDuGzN7B+9jX7bwkcapqVVUd0xzyO/Ep3sPf7aQfjAM0AvAOfIO3kxzG63ioqrZ07ZL8gN+H/Yeze0aTcW9iXZLnkryE9ZjDU1U1/T8Bb8RJfJXkYAszrwnEoXHmWNzuqtqo2YovkrzSNUpysaoOYxM24udxIZOcx7oR/Y+PO0f3TL6AHv5os3ZY69u2N+7kV0pdyO1t++QSPgtLjF9x9fr9vqq6FhdwKsn9yw0xUFXNakrU9TiPPUl+GkRysIU3rwTcQEkeGNU/1Q5e0FxH01X16CjDqtpcVauuHuK/a/Fa7NyrqzGrgZ7Crbgba5LcvhKQi3UyybeaEnMcd+FF7NWUj1k8vRKATPDvQ1cT92U+Sv8A26nQfJtecg8AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle e^{- x_{1}^{2}}$"
      ],
      "text/plain": [
       "    2\n",
       " -x₁ \n",
       "ℯ    "
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f_gaussian_x1 = exp(-x1**2)\n",
    "f_gaussian_x1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "4e1af17e-c624-4d41-8145-cb5a13ec4a4f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAAAUCAYAAAAwaEt4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAD3ElEQVR4nO3Ya4hVVRQH8N+kQaZQpPQgqCkiKyJFLQxSEnxR9CDpQ5A9zSIsIYo0jOUKK6MnBQWVZEqhoZUk1kQgPawoRYXEoKJSw+xhGpRi6vTh3CvH652Z650x5kN/OGz477XXWmedtdde+7S0t7f7H4ei7+EuyMxWfI9XI+KmnnYoMxdgIs6IiL96Wn/JznCsxpSImFc7f9SRMtwMMnMErsfcIxkUiIg1eBtzMnNA7XwzgfkJ52Jm91yri0fwJ144Arrr4VGcjLtrJ1p6S43JzLPxNV6OiKn/od2NOBZnRsS+Kt+3RuhKTMd5OAG/4xssjojnKzKtampMmcNszMVYDMBXmB0Ry7vw8Ra0YHEHL/A+xmFSRLxZ4lvwCm7EYxExows7tVhU8Xks2qrkga2UmVOxTBGUd/AkVqAfbm7QyOn4Aq1YqHjJ87EsM8d0sXYs9uHzDubvw35FTehT4p9QBOWlJoICqyrjuDJZzpjbsQdDIuKXslBmDmrQyKWK7MjS2tfxnuLFVtZblJn9MRQbOyq6EbE+MxcqgjAZ8zPzAdyDN3BHgz7W4svKOLpM1hbfvfinjlO/NWjkR8ypWduGTbiok3Wnog+2dqF/FnZjdmZOw8OK9J8cEfsb9PEgRMTOis7Tynw5Y15TbJ8NmbkYH2JVRPx6GHbWlQtYCZtxcSfrBlbGPzpTHhFbMvMZzMBz+BTXRMSeslxmjlZk6HCcgmsjYkknqrfjpDJxIGMi4ilFmm5SHF9vYVtmrqz0F41gRwf8Xp23Brsq4zEN2Ch/qFsj4u86Mv2xHtMa0EdRR3eViYOcjYgFETFS8QUvxzzF3mvLzBMbNNIMqjVtYGdCmXmdotj+XKGm15OLiHcjYlb59OpE51E4vuQDOviKEbEjIlZExG2Yrzi6R3VlpBvYqsiEwR0JZOZlinZgAy5Q9DxTMvOcbtoerGgT1pXJ8nE9MTPr3Z2qmVIvZXsEEdGOjzAoM8+qnc/MS7AEWzC+UvceVNTIud00P7IyHnRilgOxCLsz8xP8oIjiKFyINfigmw50haWYhAn4tkpm5hAsx06Mi4itEBFLMnM1rsrMURHxcZN2xyv6p2VlsryVZuAzDMOdiqbuaNyPMRFxyDHew1iKbbihSlSypw3tmBAR39Wsqd7XHm/GYGYeh6uxPCI2l+d6zV0JMnOm4iI5LCLW9pDOdh0c15l5F57F6NqMO+z/MUcYTys62IdwRbNKKr8RyrWqNTOHYntEbKrI9FNk3NJ627BX/Y+JiN2Kdn915ZrQLEZgbeWh2GprFQGvohUv4t56CnrVVupN+BfEAVQO04dokwAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\sin{\\left(x_{1} \\right)}$"
      ],
      "text/plain": [
       "sin(x₁)"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f_sin_x1 = sin(x1)\n",
    "f_sin_x1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "bb2f2409-4043-4e97-8446-efb56de981c5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEkAAAAVCAYAAAAKP8NQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAEyUlEQVR4nO2Ye2iXZRTHP9tK8kKTNFplNru4ootlggtsFTqNIoyiYCM1bGQjM8uZmubXE7pMzawcYmGlQZm5bgixiq5ml1WmJYYVQoorLW9UWqnrj/O8+fr6+/3eGToX9P3n/Hje73ue8zu35zxvXnNzM/8jN/KPtgH/BRwT/TCzYmA9sFDSLUfLoAhmtgi4Cugh6bdW2vMS4DOgStKCaL1NZpKZ9QFuBqa3loMAJH0OvAJMNbNO0XqbdBJQC+wE5h2FvR8EioBR0UKbc5KZ9QQGAEsk7Wrt/SV9CnwDjDCzAoj1pFwws5uAkUAvoB3wHfAcMFvSHwluHh6FEcAZwC/Ay8BEYFUwpDjHdsOBPOCFLLa8AZQDN0h6KbHv08Aw4CFJ481sDDALqJH0cAZdJcBq4BNJZbFHi4EpeLAaUjPJzGqDwefijpkb/kQt0GBmxyZeqQPmAIXAE8DzwEDgTSDJzYQBwF7g4yzPxwL78L5REFufhTvoSUnjw9ryIEuz6HocKMATII4PgyyHlHIzs0uBCcAG4AJJ1ZLGAhcBy4DLg9ER/zKgGlgHnCdplKQa4HxgN3BKyn4dg+612Rq2pFXAs3jQhoT37gPuAZYAt8foXwC7gL4Z9roRd0KdpNWJx41BlkF6Txoe5FRJP8YM3QOMwSNaFeMPC3KapO0x/p+4s9NwKh7ZphTeJNzpU8xsJDANaACGSNoX2/cv/A+fZmb/BCgEYzawGZicVC5pR9DfHdKd1DvItzMoWgdsBHqYWeewfHGQy5N8vHz2pOzXJchtuUiSNuIlfTpeMiuA60MwkohKJ15yk4FuwLjgkEzYCnSFdCcVBpktsk0JXiR/ShIl7cWbeC5Ep9lxKTyALbHft0r6PQsvclJfADM7B7gb+AhYmEN/+8ieNCdFXi7K8vzkBG9nkCcliaHJdkmuJ7A5yJw8M6vAG3XUAu7KQV8BNLM/k+biJX2HpIwXVzPLBzpH9qQ5aWWQV2RQdBaesutj/Sfi98ugq5T0kaMJz5CSbAQzuxrPgDXAhfhMUxUy5CBI2gasBfqYWSXQH5gvaWUmfkAJfoJ/CelOeirISWZ2YszQAjyS+cCCGH9RkBPNrDDGb4ePDDkRIvs+0DUE4QCYWT9gKd4LB0raAtyPO396DtXLgQ7AfOBnvPHnQpR170CKkyStAGYAxcDXZlZnZjNwDw8Om8+M8d/DZ6OewBoze9TMZgFf4TW+CT8Rc6E+yEHxRTPrhY8dO4BySU1hz6X4pXRwGEEyIepLnYAJkram2DAQn9VehRZcSySNAyqAb4Gh+DSdj0ejPMOJUo3PLL/iM0sl8BY+kxzP/r6VDfV44x8aLYSsasB7yyBJ3yfeicaLmWTG+iAbOTDzD0KogOuAZZI2AOS11kc3MzsbHzIXS6pI4U7Ay7N3Su9o6d6vAdcApZIaU7h3Ao8BZZI+gCNwwTWzonA6xNc64HMN+D0uDY8APwAPHAZ7KoFrgXktcFB7PCvrIwdBCy+4h4jRQIWZvYufVkX4idINeB14MU2BpN1mNgS40sw6Huo3JTPrjpf5mXjZrgHubcGrxXhPfSa+eNjLzcz6AzX4HewEfMpeh1+O54SrwhGFmd2Gn2Tb8Yv1aEmb/q2+vwHwgqk/6H1qYQAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\log{\\left(x y \\right)}$"
      ],
      "text/plain": [
       "log(x⋅y)"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import log\n",
    "log(x*y)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d826a748-1461-4cda-a885-7c8bade15748",
   "metadata": {},
   "source": [
    "#### log展开"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "b4630ab9-c21e-45b7-b42d-3e1931dc4145",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJQAAAAVCAYAAACg0MepAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAFzUlEQVR4nO2aeYwVRRDGfxwSOSJENKyKuniAxgNEEjBBxHAZjcFoNIHIIRKRiIgCCoJ8lAFEWHFVCEGjAiaKCHiExKBGUAEPVA4lGDwggoAgZ1RQgfWP7iezszNvHrtvH4PZ75/edFdX1XxbXV3d/WqVlZVRgxrkC7VPtAM1+H+hbuYPMysGNgFzJPU/UQ5lYGZzgRuAFpL+qKSOq4EvgYGSXsynfznaLyZFnEL185rKDGVm7YA7gcmV/WgASV8BbwETzKxRntw7aVEIXlMZUMAk4AAwMw+6ngCKgKF50HWyo9p5TV1AmVlLoCswX9LBquqT9AXwHTDIzOpU0qf+ZlZmZp2r6s+JQqF4rRs/pZwzdwBDgNZAPeAH4FVgmqS/QrK1cFE7CLgA2A28CYwB1npnirOYGwDUAl6P8eU9oBtwm6RFIbsvA/2AJyWNCkybB4zHEbokh08uCNLCq5kNB0qAEZKeihhvBawDPpfUKTBUgdfEDGVmk7wTl/qPne4dmwQsMbNTQlNmAKVAY+B54DWgO/A+EJaNQlfgCPBZzPhI4Chu/w5mnBJcML0QCiaAFb7tloP9giBlvC73bYeYuc8BdXDBH0QFXrMGlJldA4wGtgBXSBosaSTQBlgMXIf7B2fkrwUGAxuByyQNlTQCuBw4BJydYK+h170hrmiUtBZ4BfeP6OPnPQo8BMwH7o2Ytsq3nSLGCo4U8vo1cBBoHzH3dlzAzJC0LjRcgdekDDXAtxMk7ch0SjoMDMdlioEB+X6+nShpX0D+bxyBSTgHtxK2J8iNxRE53syGABNxKbePpKNhYUn7vfx5OfhQCKSKV0n/4ILjXDP7Lzh9IE4DdgLjIuZV4DWphmrr2w8jlG00s61ACzNr4j/0Kj+8PCyPS7WHE+w19e3ebEKStppZKTAKl45XArd6guOwB2iWYB8z2wycHzO81MzCfZW5Y0ojrytwmaYDkKlNxwHNgbt88EShHK9JAdXYt3EZYzsuOhsD+wLyv4YFJR0xs90J9jKnj1MT5AB2Bf6+W9KfCfL1A/qzoRRoEuprA/QE5gCbQ2NrctAZRhp5zdRD7YFFZnYJ8CDwKe6741CO16SAykRlEfBjxPhZIbkDvm0G/BQU9AV0U+CXLPZ2+rZpFhnMrBeuCN/hfXsAV2PEydfGBcmmbHoBJJVGzO+PC6jZkpYl6cgBaeR1JVDGscJ8Om6bvE9S5INvFK9JNdRq33aOUHYRLh1uCuzrGfmOEbo6kBzA23GZp1WcgJndiFsx64ErcXchA/2KikMr3AlqTYL9QiF1vEraC2wA2plZb6ALMEvS6rg5RPCaFFAv+XasmZ2Z6fSrosTPD77lzPXtGDNrHJCvhzsOZ4VfCR8DZ3hiy8HMOgILgK1Ad0m7gMdwhE7Oojqz6pYm+VAgpIrXAJYDDYBZwG+4w082VOA1a0BJWglMAYqBb81shplNwUVkT+/A1ID8R7g7kpbAejN7xsxKgG9we+023AkmGxb6tkew08xa447U+4FukrZ7mwtwD5U9/fE6Ct1xdzBvJ9guCNLEawiZOqoRMFrSngSdFXhNvNiU9AjQC/ge6Iu7ra2Ni95uESerwbg7od9xd0K9gQ9wdxmncaweiMNCXPHZN9PhV9US3B7fQ1K47sgcnaeG+vEr+hZgsaQtCbYLhjTwGoFMLbSK8hmyAuJ4rVWoH9iZ2cW4i7l5knolyI7GpfK2CXt4LnbvB54FOkn6pCq60oh88mpm7wA3AR0krQqPh2Qjec3747CZFfnqP9jXAHccB/f+lISngZ+Bx6voS31c9lp4sgdTdfPqC/GbgZk5BFMsrzk9Dh8nhgG9zGwZ7nRRhDsxNAfeBd5IUiDpkJn1Aa43s4ZV+O1OMa72mF3J+WnCMPLMK+4aoTdwIW4rXA88nIMvxcTwmvctz8y6ACNwl4Gn425xN+IeQEv9NX8NjhPVwauZ3YM70e3DPTIPk7StKn7+C3Y81V3suxMHAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle \\log{\\left(x \\right)} + \\log{\\left(y \\right)}$"
      ],
      "text/plain": [
       "log(x) + log(y)"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 假设条件\n",
    "from sympy import expand_log\n",
    "x, y = symbols('x y', positive=True)\n",
    "expand_log(log(x*y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "9c44e6d7-8c8a-4a9c-bc12-576a57cd60c6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAVCAYAAAAOyhNtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAE3klEQVR4nO2Ye4hVVRTGf+NMkgkpaTSllEalUWZZkIGa4qsHvZQCK1NMMskmKc1M5fMLNctIe1Fo5SMoNacHSDUVvTSxUlTSEiuMlDQtS9EyX9Mfex88Xu+95zIzmEEfDGvuOt9ee521915r7VNWW1vL/ygNjf5tB/5LqKjrQNttgI3AXEmDG8qh+sD2POAqoK2kPXW0cSmwAhgq6aX0s4oUqQVwE3At0AFoBewDvgZmA7MlHaqLA8cCti8DbgdG1TVQAJJW2n4LmGR7gaTdybP0MbwZmAVcDnwBzACqgQuBF4GFtsvq6sQxwBRgF/B8A9h6FKgEqtLKdLA2ANcDrSXdJmmspCFAe2AT0B/o1wCONDhsnwf0AhZK+qu+9iR9CawHhtkuT/QVKcJHBQZutf0CMBnoTthtmbB9CzAC6Ag0Br4HXgWelPR3DreMsIrDgLOB34A3gXHAmuhHmyLTDQHKgAUFfHkf6A30l/RGzryzgUHAY5IeSg2bD0wkLEINlF4N90d5oBSy7SnR8fMJAXo2vswUoMb2CTlDniMc+2bATOA1oA/wAZDLzYdewEFgeYHno4FDhDxUntI/QQjUrJxAAXweZe9EkRks2xXAHfHneyXwrwDGEo5uB0nDJY0GLgYWA1dG5xN+V2A4IQ1cIKlK0ihCrtwLnJExX9No+9tCiV3SGuAVwuINjOMeBu4HFgJ35xn2VZTdEkUpO2tqdPwdSTUl8IdEOUnS1pTDB4AHCCs8NMUfFOVkSX+k+PsIQc9CK6Ac2JLBG08I/kTbIwhppQYYmK/KS9oZ+WcmuqLBsl1FeMH1xBUpAZ2iPCoHStoAbAba2m4e1ZdEuTSPreVkH/0WUf5ejCRpM+GonwU8AywD+sVFKYQdQMvkR8Fg2b4HeAr4BughaUeG0wmaRVlopbfk8BL5Sy5R0kFCsi+GpPqdWIJv21P/3ynpzwx+k5T9/MGyPZKQlNcSArU1H68AdkZZWeD56Tm8XVGelsePcg7vnELYFmVRnu0BhISevMt9GfxGQPOU/aODZXsMMB1YTQjUtlxOBlZF2T2P7XOA1sDGVH5K+F3y2OpM9pVsC2HHtCtEsH0NMBdYB1xESCtDbbcvYrcdoYKvThRHBMv2BEJCXwn0lPRrhqP58HKU422fmrJdTljZRkD6zjUvynG2m6X4jQmtRlFIqgU+A1rGxTgCtrsAiwi5so+k7cAEwiJMLWK6c5QfJ4r03XAQ8AihX1kCVNnONfCjpDkZzi+z/TjwILDW9iJgD3A1oaouBaal+J/angncBayzXU3o664jHNWfCRW0GKoJN4y+hOY3eaeOhHZlJ9Bb0pY45yLbK4AbbHeVtCSPzT4xFm8nivTOahtlOTASUJ6/wRlOE50ZAwwAviP0aFVxrvHR6dwKNJzQ8+wm9Dy3Ah8SGsKTOZzXCqGaUCCSfjA58jVALdBX0g85Y5K2ZFqOnrjDbwQWS9qU6MuO549/ts8lNKvzJQ3I4I4lHNtOklYV45Yw773A00C39K47Lj7+2a6M1SetO4nQF0G4J2ZhOvATIZXUx5cmhF1XnXs86/zxr4ExEhhg+xNCdasEehIq57vA61kGJO21PRDoYbtpPb5ptSHcT+fkPjgujqHtnsAowh3vFELXvoFwCZ8haX/h0ccO/wCGJ7NGMcd9fgAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle 2 \\log{\\left(x \\right)}$"
      ],
      "text/plain": [
       "2⋅log(x)"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expand_log(log(x**2))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dd23b957-863b-4a00-97a5-29c8844df777",
   "metadata": {},
   "source": [
    "#### 三角函数展开"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "a93fa730-3dfd-42e3-8cec-37a06651bba9",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import expand_trig\n",
    "expr = sin(2*x) + cos(2*x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "611db9d5-86da-42b9-bcf0-b3b657bd9d95",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 2 \\sin{\\left(x \\right)} \\cos{\\left(x \\right)} + 2 \\cos^{2}{\\left(x \\right)} - 1$"
      ],
      "text/plain": [
       "                       2       \n",
       "2⋅sin(x)⋅cos(x) + 2⋅cos (x) - 1"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expand_trig(expr)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0980131f-1f3d-46dd-97b3-502bd2257b56",
   "metadata": {},
   "source": [
    "### Gamma函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "48be2b66-01c6-4d93-aedd-d3c4e8428b71",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACgAAAAUCAYAAAD/Rn+7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACYElEQVR4nM2WS2xNURSGv9MaKAOknUm8UsoEwaADOuptxYQwMigJjRh4JFKJCvm7xDMEYSDxiGCCtETSCRMJIR5NMJCamNDkogkqHo2kvQZ7V3ZOzj2Xe27CmqyTtdb+95e9z157R4VCgf/Zqv41QCkbl1XAzC4Dy4GZkr6VMX4x0Ae0S7oQz0fhFpvZn+z3FEmfff0S4AnQIen438IF894EGoHZkr6GuWIraCl6w8H3QeALcKZcOG+HgMfANq/52xJXUFJUStHM5gCvgPOSNmUExMz6gQnALEkjY/Es/+AGIAKuJUx2B8gBayTdCOIRcBFYDxyRtCsYdhXoApqB22PBLKe4GRgBHiXkdgKjwH4zqw7ixzzcuRgcwAPvc2GwLEAzmwgsBPqTTq6kF8AVYB7Q5sfsBnYA14HNCbJPvW/KDAhMBaqBfErNHtyB6jKzLcAB3Na1SRqNF0sa8vXTKgFY6/2nYgWSBoCTwHTgNPAQWC3pZ4ruR6CuEoA/vB9fom4w+N4o6XuJ+ppAGygf8IP3tcUKzGwt7lC886HtaYJmVgVMDrQzAeZxq9NQZLIVwCXgJTAf1y/bzWxuimYDrm09zwwoqQDcA+rMrD4GtxToBgaAFkmDwF5czz2cItvo/d3MgN56vG8N4BYAvcAQkJOUB5DUjXsQrDSzZUX0WnB99VYlAd8D6zxcPa6NFIBWSa9j9Z3eH40LmdkkYBXQK+ltmIuyPFjNrBN3uS+S9CyDzlbgFNAk6X6Yy/pgPQG8AfaVK2BmNbjV7YnDQUZAScO4q6zPX3/l2AzgLNCRlPwFjvzJOtTzEQoAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\Gamma\\left(x\\right)$"
      ],
      "text/plain": [
       "Γ(x)"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import gamma\n",
    "gamma(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "65be903c-24e6-4160-b986-4a677e29cceb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIIAAAAUCAYAAABBPOWjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAAESUlEQVR4nO3Ze8ieYxwH8M9r/iA51BQ1OYVRTqFQDNkQ5bDxh5jVrJCZOcVEv/3kGDkmcsiQYhmpJaMIETOZHBM5bMwpIqfm8PrjvmfPe7/3c7/PM3u3533bt56u+76u63ddv+/3+d2/+7quu6+/v98GbMBG69uBDegNbFxXmZkP4RjsFBG/rluXhgeZuT+WYEZE3D9E31HHn2YN+qqvhsw8AItxcUTcvM687BKZORYn4TjshXFYiXfwAB6IiH8qNk/iIOwaEb+0GXdE8IfMPBmHYV/sg83xSESc3mBTq0Hdq+Fa/Iy71qLPw4FTcC8OxOu4FQuwJ+7D/Mzsq9hch20xq2HckcIfrsBMRSB82aFNrQYDAiEzd8NEzI+I3/+3m8OLj3A8touI0yJiTkRMx+5YhimY3GoQEYvxIc7KzDHVAUcYf7gAu2ELnNOJQTsNqmuE6ejDY9UBMvNZTMKUiHiipb5PkYqn4YaIuKwrKmuIiHi+Tf3XmXk3rsHhiizRikcxV/GHL6q0teVPT2rwQosP3ZgO0qD6apiIv/FajfEl+AdXV56mmxQC3LuuBOgAf5blXzVtr5TlpJq2Jv6MLA2aMEiD/wIhMzdTvGs+qFspR8TbeBh7YGppczkuxHycPVxed4PM3BhnlLfP1HR5oywnVOwa+TNyNOgAgzRozQjjMAYrGga4An9gbmbOVKTfRZhaXaGvR1yvWDA+HRHV1C8iflJw2L7S1Al/RoYGjajToHWNMLYsf2wYYHlm3orLcAdexeSIWDnU5Jn5GXbowt/GbVCbOWbhIsViaGpD1x+wTaVuSP70vgZdYIAGrYGwapW8yRADfNdyfWZE/NbhxJ8oorBTfNVFX5l5Lm7D+zgyIn5o6L6p1XxXoVP+9KgGXWKABq2B8G1ZjtUGmXmqYmH0tWIver7Oty1Hdutpp8jM2bgF7yqC4NuGvhthK3xaaRqSf2nfkxp0gzoNWtcIKxSRPr6N8bF4EO9hb0X6nZGZuw+Tvx0hMy9VBMFSHNEUBCXGK7aISyv1jfzLuXpSgzXAIA3+C4SI6MdL2Dozd2m1ysxD8DiW46iI+A5XKjLK9cPudhtk5pXl/G8qMsH3HZgdVJYvtFY28S/n6kkN1hCDNKgeKC1QnMgdjY8hM/fBQvyESRGxAiLi8cxcghMy89CIeHmYnR+AzJyGqxT7/pcxq+ZQ5bOImFepO6q0eapm2EH8y7l6VYMTcWJ5u21ZHpyZ88rr7yPi4hrTQRrUBcI3in34neWTsQj9ODoiPqn0n4PncKPVUbausFNZjsHsNn1exLxVN5m5pUK4hRGxrKb/AP6lTS9rsK/iIKsVO5c/+BwDAqGdBnVfH+coPrzsFxFvrU2v1zcy8zzcjgntnt7RzJ/2GtR9fbwFXyjS7qhBZm6qeHoXDJHCRyV/mjUYFAgR8YfiMGZJeew6WrAj7lFJlVWMYv40aPAvgG30Ah6VCh0AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left(x - 2\\right) \\left(x - 1\\right)$"
      ],
      "text/plain": [
       "(x - 2)⋅(x - 1)"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(gamma(x)/gamma(x - 2))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c5b2487f-9068-49ee-9782-93867991d809",
   "metadata": {},
   "source": [
    "### 将符号变量替换成具体数值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "4fea75cd-164c-4889-9bb6-5a904af40469",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "cff50f53-f598-4c06-8ad0-2e8d4ac7870b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1_x_to_2 = f1.subs(x, 2)\n",
    "f1_x_to_2\n",
    "# x = 1赋值运算对符号变量没有影响"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "76001776-f0ac-4b33-a70a-20c73497d652",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 同时将x、y替换成数值\n",
    "f1.subs([(x, 2), (y, 4)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "ac46ec6c-30e2-4b4b-9ced-24bdcf5b4915",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1.evalf(subs={x: 2})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "b276468a-9900-49d5-9099-7ac88ac110a3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1.evalf(subs={x: 2, y: 4})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "d40062b4-1b4d-4d20-bed7-6c982ca93cad",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 也可以用subs() 将变量替换成其他变量、表达式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "18270019-5893-4254-88de-836312f3f2ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1.subs(x, x**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "97dc05d0-93b9-4db5-8440-7294f819179c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1.subs(x, sin(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "8d622a24-8b6f-4a57-a82f-7f0ff08a9abd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1_ = f1.subs([(x, sin(x)), (y, -exp(-y**2))])\n",
    "f1_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "677be944-93bb-4c9c-8bce-6eb79ac28cd2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADAAAAASCAYAAAAdZl26AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACR0lEQVR4nNXWT4iWVRQG8N/MtCoXLSOyFgrVJlsIuqggQosihMJFgjlRi6LA/qOhPh1IVLIYKAmJKHEXIhRtalMLtcVEZRC1iVwIRUbqpqTAr8X7jn7z+n0zFc7H9GzOy3ku5z6He5/z3rFer+f/jCsWeoOqmsS7uDPJZ5e7/qwGquoTrMGDSQ735cdaEZuwJ8mWyy2ki6p6DnvxfJLXBvA34pvxTv4FnMcrVTXRl9+rEf/2KMS3ONLG1UP4NzAxq4Ekx3EQN2MjVNVLeBbv4/EFkToYX+IPrOoSVbVec1P2dU8AtuEcXq6qp7ATH2NjkvMLp3c2kvyFaSytqmtn8lV1FV7HL9hxiYmTnKyqKWzRHNMxPJDkz/k2raoTuGEI/WlVdXMHkkzOUfIo7tBcoxlP7sB1eCTJ2WFT6FTf96NJfp9jk35M4epO7laswwGc6HBfz1PvaBtX4XBV3YRn8Hlb79IxWlUPaUz7M67BZjzxT9QnmRpQb7Jt4L3/MEaPoeeikd/EBJ5M0oNZHqiqezWdfYtb8D0eazsfOZKcxndYWVUbcBf2J/lqZs2FBqrqNhzCSaxNcgrbNae0e5TCOziCK7Efv2qGzAWMQ1WtwEc4izVJfoIkh/AF1lXV7SMU3Y8ZHyzB1iS/9ZPjVbVcMyZ7uDvJD50CW9v46oLKHI4f2ziNd7rk2GJ/zFXVh7gPq5NMd/lBP7JFg9a49+OtQeIZwWv036KqrscGLMPDmon44rD1i64B3INdOIMP8PRcP9JF74H58DdmVrr1+dfe9QAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle x + y$"
      ],
      "text/plain": [
       "x + y"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 进一步替换\n",
    "f1_.subs(sin(x),exp(x))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3fcbb13-b9a4-4978-90df-6abdcbd55fea",
   "metadata": {},
   "source": [
    "### 将符号函数转化为Python函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "65cf44dc-f90e-4096-8b72-bd77a991e8fb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACkAAAAXCAYAAACWEGYrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACY0lEQVR4nM3XT6hVVRTH8c99KkVBg4omUU1C8GE46I8gSihlKU7KjBqYRE0KygZNCuvXGohFg3gQTYLKFAxKo6iQeP3BwWvi6AnNfc1KnAQ5sLoNzrmP4+XWu6G+d3+Tfdh7rb2/Z+291j6n1+/3TYKq6jYcwS24iEpyAqZWEmxIf2J/kmk8iJmqug56kxLJYVXVPHYlWZikSC6qqu7BGvzCZG03qKqb8DGeSdKH1cu4+B4cxdokZ9u+GezEpiS/VdU1+ByHkswNfJczkp/hDA60gC/jCTzcAvbwEb5PcqTruKyJU1Xb8TVew6vYluR0O7YZpzDfcdmb5MxlQVbVG8gSZluT/NjxmcN9msw9Oc46l3sm38UnS9gsDB6qahs2aI7Zr8OGVfUltuC7JI/9J2RV7cazuBc34Cw+xFtJ/hrYJTmHc+O8TVVtwAk8j0dwEDuGzN7B+9jX7bwkcapqVVUd0xzyO/Ep3sPf7aQfjAM0AvAOfIO3kxzG63ioqrZ07ZL8gN+H/Yeze0aTcW9iXZLnkryE9ZjDU1U1/T8Bb8RJfJXkYAszrwnEoXHmWNzuqtqo2YovkrzSNUpysaoOYxM24udxIZOcx7oR/Y+PO0f3TL6AHv5os3ZY69u2N+7kV0pdyO1t++QSPgtLjF9x9fr9vqq6FhdwKsn9yw0xUFXNakrU9TiPPUl+GkRysIU3rwTcQEkeGNU/1Q5e0FxH01X16CjDqtpcVauuHuK/a/Fa7NyrqzGrgZ7Crbgba5LcvhKQi3UyybeaEnMcd+FF7NWUj1k8vRKATPDvQ1cT92U+Sv8A26nQfJtecg8AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle e^{- x_{1}^{2}}$"
      ],
      "text/plain": [
       "    2\n",
       " -x₁ \n",
       "ℯ    "
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 一元函数\n",
    "\n",
    "f_gaussian_x1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "380214c5-74ee-4a1b-a09d-abd44188ca34",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function _lambdifygenerated(x1)>"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import lambdify\n",
    "f_gaussian_x1_fcn = lambdify(x1, f_gaussian_x1)\n",
    "f_gaussian_x1_fcn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "74713984-c272-4e7d-83a9-6bfe207c659a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "x1_array = np.linspace(-3,3,100)\n",
    "\n",
    "f_x1_array = f_gaussian_x1_fcn(x1_array)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "5a76963f-a96e-4590-bb2d-7d77bc9a5a61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x2971efb9450>]"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x1_array, f_x1_array)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01e2519d-7eb0-4905-a351-452ead9a17db",
   "metadata": {},
   "source": [
    "### 二元函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "71fab4a3-a2ef-4b81-82ad-55ed9aacc94a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAXCAYAAABDArJmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAABJ0AAASdAHeZh94AAACxklEQVR4nNXYO4hcdRTH8c9sEnyBhUoaURsRskZS+IKQoAaMDyx8BbSIogYh4quwEvXnKUIUC1kQQQSjRlBQIwSVReKDCJtGi2zAPloIMWghbAofYzF3l3HYOJlsdvb6a+5l5vzP+c6Z/z3n/G+n2+1qg6rqEuzFWvyBSrKvTQwT44QZoj/xVJJJ3Iypqjq3TQydtuysQVXVLO5I8mNbGNq0sxZUVddgDX5qE0PrklVVF+JdPJJkRbb9yRhWjxFgG97DFUmONp9N4XZsTPJLVZ2FT7A7yUzbGMa5sz7CETzXQD6D+3BrA9nB2/gqyd42Moy1wFfVVnyG5/EstiT5rvluEw5itm/J9iRH2sKwpGRV1YvIELObknzTt2YG1+l1melxxR1Yf1oMS61Zr+GDITYLrb+qtmCD3uN/bNCwqvZjM75Mcu+ZijsQY1GGUxmKF01WVd2DHbgW5+Mo9uDlJH/N2yU5juNDoOd9bsA+PIa7sAu3DZi9ijfx4H/5GiXuCAzzA+nhqlqL76tqOsnc/PqJAWerqup9vUJ4OT7E6/i7cfzWqICN38vwOV5J8g5ewC1VtbnfLsnX+P10YiyVIcnPSQ4398fwGy7q9zHYDaf0usNLWJdkZ5KnsR4zeKCqJkeEvADT+DTJrgZmVu8P2T2Kr9PVqAwnG4oXCnxVXY9D2J/kzkUcPIo38HCSPWfyxwzEuRGPD6lZy6ZmIP0WOwbnrP6a9QQ6mGu6zaDWN9fOckC2QcOG4v5kbW2u9w/xuWIH2+XUqQzFnW63q6rOxgkcTHLDGBn/pao6oNfWz8Ov2Jbk0JhiDx2K55N1DubwQ5IrxwH3f9QEJDmhl9HJqrp7McOq2lRVq8YJ1zb1d8P5M9NqHNBL3gQuxtVYk+TSFeJshRbmrCRfYCM+xlV4EtuxTi95D60EYJvU2tfKbVTr3pS2Wf8An1tukqC907oAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle e^{- x_{1}^{2} - x_{2}^{2}}$"
      ],
      "text/plain": [
       "     2     2\n",
       " - x₁  - x₂ \n",
       "ℯ           "
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f_gaussian_x1x2 = exp(-x1**2 - x2**2)\n",
    "f_gaussian_x1x2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "c44c8343-7dee-4765-a80b-8cdf6c6c563f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function _lambdifygenerated(x1, x2)>"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f_gaussian_x1x2_fcn = lambdify([x1,x2],f_gaussian_x1x2)\n",
    "f_gaussian_x1x2_fcn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "97db236c-f9e9-488a-9e76-257cfc16dbc8",
   "metadata": {},
   "outputs": [],
   "source": [
    "xx1,xx2 = np.meshgrid(np.linspace(-3,3,100),np.linspace(-3,3,100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "9183440d-d1b0-425a-abdb-20dc48397d5a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.contour.QuadContourSet at 0x2971e97a290>"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiYAAAGiCAYAAADTBw0VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAwy0lEQVR4nO3db4xcZd3/8c+20G2R7kC7thS621YaFDR4a6uxBEjXOzbtAwEjRJ5UVDCp0kYl8VbQ8MeE1AhRCWqFYCoPUMCQioIQ+oAChjTQhgpiaAJSt3RbSimdLS3uQju/B/xmmd2dmXOuc65/58z7lUxit7Nzzkxx573f65qZrlqtVhMAAEAEpoQ+AQAAgDrCBAAARIMwAQAA0SBMAABANAgTAAAQDcIEAABEgzABAADRIEwAAEA0CBMAABANwgQAAETDaZhs2LBB5557rnp6etTT06Nly5bpkUcecXlIAABQYF0uPyvnr3/9q6ZOnarFixdLku6++27dcssteu655/Txj3/c1WEBAEBBOQ2TZmbNmqVbbrlFV155pc/DAgCAAjjB14GOHTumP/3pTzpy5IiWLVvW9DojIyMaGRkZ+/Px48d18OBBzZ49W11dXb5OFQAA5FCr1XT48GGdfvrpmjLFcNdIzbHnn3++9qEPfag2derUWqVSqT388MMtr3vDDTfUJHHhwoULFy5cSnDZvXu3cTc4X8oZHR3V4OCgDh06pAceeEB33XWXnnjiCZ1zzjmTrjtxYlKtVtXf36//ueBnmnrCDJenCQAALDn23jva8dT/6dChQ6pUKkbf63wpZ9q0aWObX5cuXapnn31Wt912m+64445J1+3u7lZ3d/ekr089YQZhAgBAwWTZhuH9fUxqtdq4qQgAAECd04nJddddp1WrVqmvr0+HDx/Wvffeqy1btujRRx91eVgAAFBQTsPk9ddf1+rVq7V3715VKhWde+65evTRR/WFL3zB5WEBAEBBOQ2T3/3udy5vHgAAlAyflQMAAKJBmAAAgGgQJgAAIBqECQAAiAZhAgAAokGYAACAaBAmAAAgGoQJAACIBmECAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBqECQAAiAZhAgAAokGYAACAaBAmAAAgGoQJAACIBmECAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBqECQAAiAZhAgAAokGYAACAaBAmAAAgGoQJAACIBmECAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBqECQAAiAZhAgAAokGYAACAaBAmAAAgGoQJAACIBmECAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBpOw2T9+vX6zGc+o5kzZ2rOnDm65JJLtHPnTpeHBAAABeY0TJ544gldffXV2rp1qzZv3qz33ntPK1as0JEjR1weFgAAFNQJLm/80UcfHffnjRs3as6cOdq+fbsuvPDCSdcfGRnRyMjI2J+Hh4ddnh4AAIiM1z0m1WpVkjRr1qymf79+/XpVKpWxS19fn8/TAwAAgXXVarWajwPVajVdfPHFeuutt/TUU081vU6ziUlfX5+WDNyuqSfM8HGaAAAgp2PvvaPtj69TtVpVT0+P0fc6XcpptHbtWj3//PP6+9//3vI63d3d6u7u9nVKAAAgMl7CZN26dfrLX/6iJ598UvPnz/dxSAAAUEBOw6RWq2ndunXatGmTtmzZokWLFrk8HAAAKDinYXL11VfrD3/4gx588EHNnDlT+/btkyRVKhXNmMGeEQAAMJ7TV+Vs2LBB1WpVy5cv17x588Yu9913n8vDAgCAgnK+lAMAAJAWn5UDAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBqECQAAiIa3TxcG0JlOWnhK5u89uuuQtfMAUAyECYBU8gSG72MSNEBxESYAJIUJD1fa3ReiBYgbYQJ0mDIFSBat7j/BAsSBMAFKrNMjxESzx4pYAfwjTIASIUTsIlYA/wgToMAIEf8mPuaECmAXYQIUCCESn8Z/EyIFyI8wASJHjBQHkQLkR5gAESJGio8lHyAbwgSIBDFSbkxTgHQIEyAgYqQz1f/dCRRgMsIE8IwYQR1TFGAywgTwhCCRTu2vtP37twarns4kPkxRgPcRJoBjZQuSpLgIddtliRqmKOh0hAngQNFjxGV8uNLunIsaLUxR0IkIE8CiogVJEQMki1b3syjBQqCgkxAmgAVFCJJOiRATzR6TmGOFZR50AsIEyCHmICFEspn4uMUaKictPIU4QSkRJkAGsQYJMWJfzKHCEg/KiDABDMQWJISIf42PeSyRQqCgTAgTIIWYgoQYiUdskUKgoAwIEyBBDFFSpBiZc0aPk9vdv2fYye3aElOkECgoMsIEaCF0kMQYI66iw+axYwiYWCKFQEERESbABJ0eJCHjw4ZW5x8qWGKIFF7BgyIhTID/L2SQhIqRokeIiWb31Xes1P+dQwQK0xMUBWECKFyU+A6STgqRNELFCoECtEaYoKOVPUgIEXONj5nrSAm5zMPyDmJFmKBjhYgS10FCiNg18fF0GSohpihMTxAjwgQdp2xBEkOMnD7P7zkM7Q2zkdXHNCVUoBAniAVhgo7iO0rKEiS+wyNJ0vn4CBfXkeI7UIgTxIIwQcfwGSWugsRHjMQWIVm0ug+ugsVlpPgMFJZ2EAPCBKVX9CBxGSNliBATE++vi1Cp/3u5CBSmJ+gEhAlKzVeUFCVIOi1EkrgMFRdTFN/TE+IEIRAmKK2iRontIIktRubPPbnl3732+tsez2QyV6Fie4riK1BY2kEIhAlKyUeU2AwSmzHiK0TaBYbP23QZM42PpY1IcREoTE9QNoQJSoUgsc9FgNjkawJjM1JsBorP6QlxAh8IE5RGkaLEVpDYjpHYI8RUs/tjI1ZsRUrRAoU4gQ+ECUrBdZTENCWxGSNlC5E0Jt7nvKFS//eIKVCIExQZYYLCK0qUxBAkIUNk/qyTUl/3tYNHHZ7JeI2PSZ5IsTFFsRUoxAmKjDBBoRUhSkIHiasYMQkNl7dtM2JsR0qeQLERJ5K7pR3iBK4QJigsl1FS9CCxGSMuA8SGVueXN1hsREqeQCnC9ISXE8OFKS5v/Mknn9QXv/hFnX766erq6tKf//xnl4dDBylzlJw+rydTlMyfe/LYJY/5s04adymqifcjz33J+9hm/TeV3v9vKW/kuv5U6xAfjInycjoxOXLkiD75yU/q61//ur785S+7PBQ6SMxRkjdIsrARIp1i4n3NMlXJM0nJO0HJMz1haQdF4TRMVq1apVWrVrk8BDqMqygJOSXJOh3JymWInDGz29lt1+05PGLtthofizyR4itQbCzvuF7aIU6QV1R7TEZGRjQy8sEPneFh9x9djuKINUqKECQ2Y8RHfGQ9fp5oyRMpeQIl1PSEOEGsogqT9evX66abbgp9GohQmaLEV5DYiJHQEWKq2flmiZWskZIlUPJMT2KNEyCPrlqtVvNyoK4ubdq0SZdccknL6zSbmPT19WnJwO2aesIMD2eJGHVylPgOkqKFSBZ5piqmk5Qsr+bJMkHJEyiu4oSpSWc79t472v74OlWrVfX0mP3ci2pi0t3dre7u8v9gRHoxRkmMQZI1RlyFyOwZ71i9vTffsfeLSeN9No2U+uOcNlCyTlB8Tk9cbYplSQdZRRUmQKNOjBIfQWIjRmyHR97jZQ2XrJHiOlCyLO/EuLRDnCALp2Hy9ttv6+WXXx7786uvvqodO3Zo1qxZ6u/vd3loFFwZosTllMQ0SPLEiO8IyaLZOZrGSpZI8REopnEiZV/aIU4QA6d7TLZs2aKBgYFJX7/iiiv0+9//PvH7h4eHValU2GPSgVyESaxREluQFCFEssg6VTGZpJjsQTFZ3inDvhPipLNEu8dk+fLl8rS3FiVClDS5nkGQxBAjp0zbbfX2JOnQaF+u7594H9OGSv3xTBMoJhMUk+mJ76UdJicIiT0miEpMUVL2IMkTIy7CI88xs0RL4/1PEykmSz2mgeJyaSemOAHSIEwQDaJkwvVSRolJkGSNkRAhYqLZ+ZnEStZIsRUoptMTn5tibWJqgjQIE0ShE6IkVJBkiZHYQySNifchbajUHy/bgWJzemK6tJM1TljSQQiECUqpzFHiIkhshcj0d/dYuZ12/nviGZm+r/E+pokU00CJfXpCnKAoCBMEZ3taUsQoCREkeWLER4CYHtskWEwiJe0yT8jpSRHjBGiFMEFQrt6vxJSLKPE9JXEVJCEjxMTE80wbKvXHw9YUJU2gmExPyhonTE3QCmGCUskyLTGJkhinJGmCJJYYqR3al3idrlNOs3KsxvuQJlJMpyhJSzxpl3eIk0PWbg/lQJggmBiWcIocJbaDJE+MpAkOm7dlGi+m05Q0UxSb05NOjhNgIsIEQcQQJS7YiBIbU5K0QZIlRmxGSFbNzsEkVur322eg5F3aiSlObGJqgokIExSej82utvaU5I2SEEESQ4ikMfE804RK2uUeG4FiY3oSS5ywpAOXCBN4F8OGV99R4jpIpOQo8R4jb1gKmg9n23NiGipppihpAyXv9CQpTqTklxObvhGbKZZ04AphAq9iWMIpW5TYCpLMMWIrQLLcvkG01O+fj0BxHSdSuulJ2jhhSQcxIUxQWJ0eJUGCxHWEmJp4PilCpfH+touUtIHSLk6k9ks7eePEphiWdABJmhL6BNA5YljCSSt0lMye8Y7TKKkd2jd2SfTGvg8usWs81xTnm+YxmP7unraP5ynTdrf992j373jGzO62/x0k/TeUZl+Tyec4mb6fj2R343mRfkbAHSYmKCSX05IYoqQVG0GSSsYIqb2+P9P3pdU1d47ZNzTejzbTlDTLPEkTlKTpSdalHRsbYl3vN7GJJR0QJvDC5m9CRMlkVoLEMEZcR0jaY6aOlfr9sxAoWeNEyra04zNOWNJBaCzlAAZKGSUGyzS11/ePXWLReE6pzivF/U1a4mm3vJN3aacVn8s6LOkgJCYmcK5M05J2fEeJlSBJwUaEHB88YHT9Kf29mY/VeL5tpykplnmSJih5piehJidA7AgTlJrPJZx2skRJ1imJjSDJEiOm8ZHnttKGi3GktAmUssRJUZZ02GvSuVjKgVOhpyW25FnCiSZK0ixhGCzTHB88MO7iU5Zjp7pvbR6fdss7SUs7rbha1knickkHyIswQWnZmpYUIUoSX/ZqKUhChUgSk/NKvK8JAZe096SZrHGSVZ7pXl7sNUFeLOXAmSJMS1zuK/EZJS2lCJIkeSLk3VfzjfVPXGT+7954vu2WfOr3veUSzxv7rC7tZFnWKeqSDpAHYYJSsjWCzvqbZ+xRkhQkWWIkb4SY3GbaYKnfj8yB0mbvSbuNsbHESRJX72/Cy4eRB0s5iF6oaUnelwY34yVK2ixFJC1jmCzTvPtqddzFJ9Njp7lfics7rb6vzb6TZtJ+AnSjrPtNbC3phNxrwnJO5yFM4ETIHyY+fohmWcLxFiUt2AiSUCGSxFagtA03D3GSdTNsO0lxknc5s5WQm9VRbCzlIGqxTktayfrk0YytKMm7bJMnQo7uyhcwJy00+/dvPNd2yz1JSzy11/dnWtqxsayT9Pb1zfj4wL+Qe0146XBnYWKCUgk9LWnFdFriI0qSpgemk5Gju6qTLnnluc005580PWmp1ePteHLiakmHqQliQpjAOlvLODFOS3ws4fiKklZMgsRmhKRlesyk+9Mu0LIs7ZjGiSmbUzlTvK8JfCBMUBohf2gWJUrSTEmShIgRG+eSJlBasRUnzWTZb9JKjFMTW9gE2znYYwKrYv/h4WpaYoOPKGklbZDkUf1Puv0JlQXZniAbz6/d3pR3X6223H9yfPBAtn0nbT6xuJGt/SbtXkLsmuleE146DFOECaJkuoxThmlJMzFEiWmQpA0Q0+83CZb6ObcKlPp9bhYo7TbGmsSJ6WZYW9pthLX1pmuASyzloGPEMC3J+knB41iKkqSlDZPlmup/hscurmQ5RtL5Z1naMfmAQ5dLOiH3moQS+0QWdhAmQA6m05JmjJZwLEZJO2mCxEeM2Dh2UmBZixOD/SY233ytGdd7TUwnlLw6ByYIE1gT6tU4NpZxQk5LmgkVJWmmJKFipBWTQGkl66bYSRI+m6iRyZSMqQk6CXtM0BFcvOLA5bQkLdtR0k7eGHlz72jq686eN8349uvn124vytFd1bb7Tkw+NNDGfpNm2n2ejgnXb7rGh/vBFSYmgAeupiXNxBAlb+4dnXTJ8/0mkiYo7aZCrR4jV/tNQk1NQrx02NZyDvtMyo8wQaGFWsZxNS0x2SzZ7EnRdpSYLNtkDQlXt5103k7jxCAkm7G11wQoIsIEVsT8bq+h3zgq95NMkyc5k9/U80RJGq5iJOl4aY7pK07ScjU1acXHJw8DthEmQAumm159TkuaMX3SzBslvoOk1TkksR0nzYSemoTaBMtb1MMFwgQdLctvjV6fBBxNS2xESSzSBJLNVxKFnpr4EvM+E5QbYYLCSvPbWozLOL6mJS6iJO+UZO/eWuIlqzzTExtLOi6mJs3YXM4pKjbAlhthgmgU+bepLB+4lijltCTvb/B1aaLEVJboyBMqeaLJxpKOba6Xc9hnghgRJsitjL+9FP23TNNpie0oyTv9yHNbaZZ1XEk7NSnKcg4QAmGCjuV6f0muZZyce0uayfrpwCZRYjNI8tx21jgxmZrYmlRl4WRC14SLt6cHkhAmQIGZ7C1ppd0EIW2UuAySZsdKI+uyTtaAi1lME8AiL9nCD8IEhRTTxldfv73m4fLJ1leQZDlmuzixsaSTZxNs2uWcIrxsGLCJMAE6WN5pSYgoCXXskJtgXWIDLGJDmAATmL4NfTNpf8vNs7/ExjJOHiGjxOQcskxNyricAxQFYYIodMK6c6hXXWR5JU5Mb6CWJIZACqEIS4gulfHVgHgfYQLAWNFiwFZopX11Tt5XUAGdjDABUHh5Qsnl+5qM4+BdYH0I/e7J6DxewuQ3v/mNFi1apOnTp2vJkiV66qmnfBwWaIkNf60VaRnHJR/7TPJ+FEEseC8T2OQ8TO677z5997vf1Y9+9CM999xzuuCCC7Rq1SoNDg66PjRQWiE3vhZtGado8r5kGCg652Hy85//XFdeeaWuuuoqnX322frlL3+pvr4+bdiwYdJ1R0ZGNDw8PO4CAAA6h9MwGR0d1fbt27VixYpxX1+xYoWefvrpSddfv369KpXK2KWvr8/l6QEAgMg4DZMDBw7o2LFjmjt37rivz507V/v2TV5bvfbaa1WtVscuu3czvgQAoJOc4OMgXV1d4/5cq9UmfU2Suru71d3NWyoDANCpnE5Ment7NXXq1EnTkf3790+aogBIb0p/76SvnbjIz5vUzZs3+ZcKZNN1ymmTvvbfE8+Y9LVDoyxro3M4DZNp06ZpyZIl2rx587ivb968Weedd57LQwNtvfb626FPIVqz500LfQpROGlh+d+N2Jb9e3ihAuxxvpRzzTXXaPXq1Vq6dKmWLVumO++8U4ODg1qzZo3rQwPoEHmmOJUFnt6D48OTpyNFMLSX6IBfzsPkK1/5it5880395Cc/0d69e/WJT3xCf/vb37RgwQLXhwbgyLx5XYV6PxNbU6Bmy2XNltW65s6xcrx23nxnhvNjACF4eefXb3/729q1a5dGRka0fft2XXjhhT4OiwJ5azD+T3Pdc3gk1/c32zvgQ6sliXaTgjRP5LHsNYnlPODX0V2HQp8CHOGzcoAJXjt4NPdtpN2s2GzzY7ORf7PfwENugI1FmihpF1mt4qyT9pew3wqxIUyADlDGqYnvY3da9AGhECYopDSvAvC1aa/T1/pDxEnaY2aZlphIvb+k2RTMwUuF8y43AjEgTIACM1nOcTU1kd4PBV+BYiNK2injMo6N5UlbirCfDGERJuhYWdbWTX4jbfabbrPfiPPsM/HB5AneZaCY3HbSOZvuLUn7ahxffE3p0kwdeQ8T2EaYILcy7o6P6TfMLGxOTSTz6YPNQDG9raxRYoPtZRygExEmiEaRR7x5f4O1/eqcLGzHifRBVKSNi4nXN42bPO9XYjIt8cX1/hJekYMYESYorJg2wLaSdjknLxt7TaR0cZLnyb9ZeGSNkGbnlsTGEo5kf9OrCdMILvr0r5kyTmnxAcIEHa3db4ytfqB7feVDzr0mLuJEiuvzdNLEUmVBj7UlHBd7S2JcxnER9UWeisIfwgSwxOQ32dSbYA2YPmHaiJOQgZL2+En3xcYSTtppiYkiLOOw8RUuECawwtZo1cVvVDEu5xhxNDWR8seJ5D9QTI5nO0ryfi5O3k2vLOOgExAmKDQbv7HZXM7xOTUx2QibJ05MA8VFpGS5bR9R0lLOvSW5YxYoMOefLgzg/SeaU6btTnXdrlNOU+3QvvFf/PBp0hv7mn/DBFP6e3V88MCkr5+4qKJ3X20+kTppYUVHd7WeVlUW9Kj6n/QR2Cwg3tw7mvl7TWQNEsk8SvK+t4yNaUmrSG43LUlaxol5fwkbX8uPMEFHGNo7rNPn2X3/ij2HR3TGzO5JX3/znRmaPeOdVLfx3xPP0PR396Q7YJM46Zo7R7XX90+6qqs4kWQUKI1cL/ekmexkiZJWWkZJh0xL2F8CV1jKgTWh9pmEWs4xZfKEk3dJR8q+rJP0luw2X+FiQ9rzyRolRvtKDDa8upyWAEVGmAA5uNprIqV/0zXJbpxI6T4vph4EISLF5NhJsWUaJS21+rcx2PBqa1riehnH9JcBXiYME4QJOkbSD9yQUxOj97GwGCd5pyd1jaHgKlRMbz/N+WeJkryvwmml1X8bTEs+wP6SzsAeE0TprcGqTu1Pv+a/f8+w5pwRZnnBdK9J7o2wUsvNsKZ7TqT2+06kD6Yn7fafTNQsHtLuTckbNmliKuuUxMa+EtdvphbbplfAFGECq47uOqSTFp4S+jRaStoE+9rrb2v+3JOb/93Bo5o/6yRXp9ZyI6yvOJFkPVAauV7ySTvd8RElrZgu4cQ4LWEZB66xlIPSCPkqAdO9JqZLOi2XBDIs67R78k1a3pE+WCJJGwIumZxL0n1rt3RjGiU29pVkiZIyT0tYxukchAmsi/ldYCV3e02KEidS8qbOtC+dDREppsdMEySZ9pMYRIkPPt7llZcIwweWclAqPvaaZFnSMd1v4npZR/ogTpKWd6T2Szx1zUIh67JPu9tMK01cZVq6kYyjJPQSTqhpCcs4yIIwQdRMN8GmlWevSTutNsJmYTNOJGUOFCndHpRmfC/3pJ30JE2MsuwnCRklZZ+WsIzTWVjKgRMhf5DY+gEaeklHsresIyW/zDXNe3bUl0VM3yXVJZNzStpjk2U/ieQ+SvJgWoKiIUwQvVB7TZJk+S3VW5y02XeStPck6cm7rjEIfIeK6XHT3KcsSzeSvShpx9WG17SYlsAnlnJQSrb2mrhY0sny/ibGyzpS2w/+S1rekdIt8TRqFgmmSz9pbtNEmsCyHSRStigJsYTDtAQxIkzgjM33NAm110TK/t4mPuNEUut9J5KVQJHSR0pdiCWftG8jn/gOrgWPEltLOLwSB76xlIPSSvsD1eWSTrsnFpvLOlLCy1QT3gQsaYmnzmSpx5fGc0o7IUmckmRcurEZJXnYWsLJwua0hGWczkSYwCmbP1hCjoeTftAXJk4sBYpkHgS2ZDlu/X7lDZIsbzOfNUpiWMJhWoIQWMpBqaXda5J3SUdys6wjqeX7nEgyX9qREpd3pPHLHO2WeRolRYLJMpCt0En9gXtJwZZh6UYKEyUhl3CYlsAGwgTOhd5r4jNO2skSJ1K2fSeSnUCRskVKM76mKrZiRMoeJFKcUQIUAWECNEgTJ+0kvSus7ziREl65I6UOFGnyk36eULEldYjU5QwSyc2URHIfJUxLUASECbwoytQkjTxLOpK7OJGaL+1IKaYn0vgn7BSRIjWPApexYhwhdSk/AThPkEhECWADYYJCin1Jx2WcSM33nUiWAkXKFCljx8gaDy5YChKpM6IkBkxLwKty4E0MP3BsvoQ4zyt1pORX67R7Mkt699B2L12VPniFSapPwq2/WiXlk3xQjeeacskmzZQkaekmz36SmKIk9LQkhp8RCI+JCbwKvaRjIvTkRMo3PZGS959IBlMUqfmTveFExaoMsZQqxpRvQiLlm5JI/je6ho4SoI4wQaG53m/iK04kZVrakdIv70itl3ik8U/YqSKlrlUc2AoWC5OatDEiJQeJVJwoKdL7lTAtQR1hAu9sTk2yChEnknLtO5GUGCjtpidS8h6UusyR0ijw0o9JjEh+gkSKL0qyYloCVwgTFF7WJR3fcSLZWdqRWgdKmuUdKX2gSJOf4DOHimOmISKlixEp3ScC552SSGGiJIYlHKYlaESYIAjbU5OyxYnUemlHyr+8U5d2madRswDwHStZIqQubYxIdoJEyj8lkYgSdA7CBMHEEicmfMWJlH96Io1/YnURKXVpQyEpYPIERzsmMSL5CxKpWFEC+ECYoFR8vPmazTiRkvedSMnTE6l9oEjppyjS5Cdy01BpxVV4NOMiRqT0nwZcxihhWgIfCBMEFcNGWMldnEjyMj2RzANFShcpkrtQscU0QhqlDRLJ75REIkrQmQgTBBfLko6LOJH8Tk+k9IEiZYsUqXUIuA6WPAHSyHaMSOmCRLI7JZGKGSVAO4QJSqmIcSKln55IdgNFyh4pjWyFg20mIVIXIkgkdy8HjilKmJagHcIEUXCxpBNjnEjplnak9tMTyTxQpGyRImUPlZBcxkgdUWKOKEESwgTR6IQ4kexOT6T0gSJlixSp+ZN8TLGSJUIamQRJ2hiR7AeJRJSg/AgTRCW2OJFk9D4nkoJMTySzQJGyR0pduxiwHS15w6MZV9MRKX2QSHFGCRASYYLoxBQnUjzTE8ksUCR/kTKRi5DIyzRE6ooYJFK+KGFagpAIE3SMmONESp6eSGaBIplPUaTJT+A2QiWErCEimcWIZBYkUtxTEqIEoTkNk5tvvlkPP/ywduzYoWnTpunQoUMuD4cScfX+Jr7jREq3tCP5CRTJLFKk1k/wMQVLngipM40RyW2QSEQJOpPTMBkdHdVll12mZcuW6Xe/+53LQ6GEyhAnktn0REq/vCONf2L0ESmN2sWA7WixER7NZIkRKb4gkeJbupGIEmTjNExuuukmSdLvf/97l4dBicUaJ1L6TbGS2+nJ2PcYTlGkyU/MeUKlkauQsCFrjEjug0QiSoCo9piMjIxoZOSDHxrDw+woR5xxIvmbnkjZAkUyixTJXaiElCdEJPMYkYoRJBJRgjhFFSbr168fm7IAjcoWJ1L66YmULVCkbFOURs2e1GONlbwB0ihLjEj+gkSKN0qAvKaYfsONN96orq6utpdt27ZlOplrr71W1Wp17LJ7dzxv4ITwXP0W9tZgNdcP6f17hjM9SQztHTZ+Unrt9bfHLkbfd/Do2CWvPYdHWl5cc3nsPI9Rln8TqZxRwrQEeRlPTNauXavLL7+87XUWLlyY6WS6u7vV3R3nb2OIg8tPIw4xPZGyTVCk/FOUuqzTlGZ8xIlNeUMtS4xI4YJEIkoQP+Mw6e3tVW9vr4tzAVKJPU4ks42xdb4DZez7HYZKbGxMjLLGiFTeIJGIEtjjdI/J4OCgDh48qMHBQR07dkw7duyQJC1evFgnn5zthyggxR0nUthAkbJHitT8ybuIsWIjQsZuK0eMSNmDRCJK0Hmchsn111+vu+++e+zPn/rUpyRJjz/+uJYvX+7y0OgAruNEkpVAyRInUvZAkexFytjttXiSjyFYbAbIuNvNGSNS+CCRWLpB8XTVarVa6JNoZXh4WJVKRUsGbtfUE+J9XwSE5SpO6vLGSV3WQKnLEigT2YiUXMdPETKuQiON0DFSx5QERXfsvXe0/fF1qlar6ukx+9kV1cuFgSxcTk4kO0s7Ur7lHSnfBKVu4hOv71AJGR3N2AiRuliCRCJKUGyECUrBR5xIdqYntgJFyj9FCR0qvtkMkbpOChKJKIF7hAlKw3WcSPamJ1K+/Sd1NiNFav7EXdRYcREhdTZiRLIXJBJRgvIgTFAq9R+cRZueSPn3oNiOlLp2T/AxRIvLAGlkK0ak4gWJRJTAH8IEpeRreiLZ2xybd4mnkatImchXFIRiM0Yku0EiESUoJ8IEpeUjTiS7yzuS3UCR/EVKGdgOEcl+jEgECcqNMEGp+YwTyd70RLIfKNLkJ95ODxUXIVJX5CCRiBKEQ5ig9HzsO6lzGSiS3UiRmj8xlzlWXIZIXdGDRCJKEBZhgo7ha3oiuQkUyW2k1LV68i5SsPgIkEYuYqSOKQk6DWGCjuJzeiK5CxTJT6Q0Snqy9xkuvsOjGZcxIjElQeciTNCRfE5PJLeBIvmPlGZiiAXXXMeIRJAAhAk6lu84kdwHihRHpJSFjxCp8x0kElGCOBEm6Gi+l3bqfASKNPmJlVBpz2eISGFiRCJIEDfCBFD5A6WOUBnPd4jUhQoSiShB/AgToEGI5R1p/BOVr0iRmj8xlzVWQkVII4IESEaYABOEmp7UhYqUunZP4EWIlhgCpFHIGKkjSlAkhAnQQuhAkfwv9SRJ+6RvO2Bii40kMcSIRJCgmAgTIEGo5Z1GoacopooWEjbEEiMSQYJiI0yAFGKYntQVLVLKLKYYkQgSlANhAhiIKVCkyU+MhIp7scWIRJCgXAgTIIPYAqWOULEvxhCpI0hQRoQJkEOsgVJHqJiLOUTqCBKUGWECWBB7oNQ1e9Lt5FgpQoQ0IkjQCQgTwKKiBEqjVk/OZQqWogXIRAQJOglhAjjQ+ERSpEhp1O7JPMZoKXp8NEOQoBMRJoBjRZyiJCljBMSCGEGnI0wAT8owRYE7BAnwPsIECKCMUxSYI0aAyQgTICCmKJ2HGAHaI0yASBAp5UaQAOkQJkCEiJTiI0SAbAgTIHITn+AIlXgRI0B+hAlQMExT4kGIAPYRJkCBMU3xixAB3CNMgBJp9sRJrGRHiAD+ESZAyREr6RAhQBwIE6ADdXKsECBA3AgTAJKSn7CLEi6EB1BshAmAVPI84ZtGDXEBdC7CBIBzhAaAtKaEPgEAAIA6wgQAAESDMAEAANEgTAAAQDQIEwAAEA3CBAAARIMwAQAA0SBMAABANAgTAAAQDcIEAABEgzABAADRcBYmu3bt0pVXXqlFixZpxowZOvPMM3XDDTdodHTU1SEBAEDBOfsQv5deeknHjx/XHXfcocWLF+uf//ynvvnNb+rIkSO69dZbXR0WAAAUmLMwWblypVauXDn254985CPauXOnNmzYQJgAAICmnIVJM9VqVbNmzWr59yMjIxoZGRn78/DwsI/TAgAAkfC2+fWVV17R7bffrjVr1rS8zvr161WpVMYufX19vk4PAABEwDhMbrzxRnV1dbW9bNu2bdz3DA0NaeXKlbrssst01VVXtbzta6+9VtVqdeyye/du83sEAAAKy3gpZ+3atbr88svbXmfhwoVj/3toaEgDAwNatmyZ7rzzzrbf193dre7ubtNTAgAAJWEcJr29vert7U113T179mhgYEBLlizRxo0bNWUKb5sCAABac7b5dWhoSMuXL1d/f79uvfVWvfHGG2N/d9ppp7k6LAAAKDBnYfLYY4/p5Zdf1ssvv6z58+eP+7tarebqsAAAoMCcra187WtfU61Wa3oBAABohk0fAAAgGoQJAACIBmECAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBqECQAAiAZhAgAAokGYAACAaBAmAAAgGoQJAACIBmECAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBqECQAAiAZhAgAAokGYAACAaBAmAAAgGoQJAACIBmECAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBqECQAAiAZhAgAAokGYAACAaBAmAAAgGoQJAACIBmECAACiQZgAAIBoECYAACAahAkAAIgGYQIAAKJBmAAAgGgQJgAAIBqECQAAiAZhAgAAokGYAACAaBAmAAAgGoQJAACIBmECAACi4TRMLrroIvX392v69OmaN2+eVq9eraGhIZeHBAAABeY0TAYGBnT//fdr586deuCBB/TKK6/o0ksvdXlIAABQYCe4vPHvfe97Y/97wYIF+uEPf6hLLrlE7777rk488cRJ1x8ZGdHIyMjYn6vVqiTp2HvvuDxNAABgUf15u1arGX+v0zBpdPDgQd1zzz0677zzmkaJJK1fv1433XTTpK/veOr/XJ8eAACw7M0331SlUjH6nq5alpwx8IMf/EC/+tWvdPToUX3uc5/TQw89pNmzZze97sSJyaFDh7RgwQINDg4a3zGMNzw8rL6+Pu3evVs9PT2hT6fQeCzt4HG0h8fSHh5LO6rVqvr7+/XWW2/plFNOMfpe4zC58cYbm041Gj377LNaunSpJOnAgQM6ePCg/vOf/+imm25SpVLRQw89pK6ursRjDQ8Pq1KpqFqt8h9ITjyW9vBY2sHjaA+PpT08lnbkeRyNl3LWrl2ryy+/vO11Fi5cOPa/e3t71dvbq7POOktnn322+vr6tHXrVi1btsz00AAAoOSMw6QeGlnUhzONyzUAAAB1zja/PvPMM3rmmWd0/vnn69RTT9W///1vXX/99TrzzDNTT0u6u7t1ww03qLu729VpdgweS3t4LO3gcbSHx9IeHks78jyOzja/vvDCC/rOd76jf/zjHzpy5IjmzZunlStX6sc//rHOOOMMF4cEAAAF5/xVOQAAAGnxWTkAACAahAkAAIgGYQIAAKJBmAAAgGgUJkwuuugi9ff3a/r06Zo3b55Wr16toaGh0KdVOLt27dKVV16pRYsWacaMGTrzzDN1ww03aHR0NPSpFdLNN9+s8847TyeddJLx2y53ut/85jdatGiRpk+friVLluipp54KfUqF8+STT+qLX/yiTj/9dHV1denPf/5z6FMqpPXr1+szn/mMZs6cqTlz5uiSSy7Rzp07Q59WIW3YsEHnnnuuenp61NPTo2XLlumRRx4xuo3ChMnAwIDuv/9+7dy5Uw888IBeeeUVXXrppaFPq3BeeuklHT9+XHfccYdefPFF/eIXv9Bvf/tbXXfddaFPrZBGR0d12WWX6Vvf+lboUymU++67T9/97nf1ox/9SM8995wuuOACrVq1SoODg6FPrVCOHDmiT37yk/rVr34V+lQK7YknntDVV1+trVu3avPmzXrvvfe0YsUKHTlyJPSpFc78+fP105/+VNu2bdO2bdv0+c9/XhdffLFefPHF9DdSK6gHH3yw1tXVVRsdHQ19KoX3s5/9rLZo0aLQp1FoGzdurFUqldCnURif/exna2vWrBn3tY997GO1H/7wh4HOqPgk1TZt2hT6NEph//79NUm1J554IvSplMKpp55au+uuu1JfvzATk0YHDx7UPffco/POO08nnnhi6NMpvGq1qlmzZoU+DXSI0dFRbd++XStWrBj39RUrVujpp58OdFbAB6rVqiTxczGnY8eO6d5779WRI0eMPh+vUGHygx/8QB/60Ic0e/ZsDQ4O6sEHHwx9SoX3yiuv6Pbbb9eaNWtCnwo6xIEDB3Ts2DHNnTt33Nfnzp2rffv2BTor4H21Wk3XXHONzj//fH3iE58IfTqF9MILL+jkk09Wd3e31qxZo02bNumcc85J/f1Bw+TGG29UV1dX28u2bdvGrv/9739fzz33nB577DFNnTpVX/3qV8c+GLDTmT6WkjQ0NKSVK1fqsssu01VXXRXozOOT5bGEua6urnF/rtVqk74G+LZ27Vo9//zz+uMf/xj6VArrox/9qHbs2KGtW7fqW9/6lq644gr961//Sv39zj7EL421a9fq8ssvb3udhQsXjv3v+icbn3XWWTr77LPV19enrVu3Go2Iysr0sRwaGtLAwICWLVumO++80/HZFYvpYwkzvb29mjp16qTpyP79+ydNUQCf1q1bp7/85S968sknNX/+/NCnU1jTpk3T4sWLJUlLly7Vs88+q9tuu0133HFHqu8PGib10MiiPikZGRmxeUqFZfJY7tmzRwMDA1qyZIk2btyoKVMKtaLnXJ7/LpFs2rRpWrJkiTZv3qwvfelLY1/fvHmzLr744oBnhk5Vq9W0bt06bdq0SVu2bNGiRYtCn1Kp1Go1o+fqoGGS1jPPPKNnnnlG559/vk499VT9+9//1vXXX68zzzyTaYmhoaEhLV++XP39/br11lv1xhtvjP3daaedFvDMimlwcFAHDx7U4OCgjh07ph07dkiSFi9erJNPPjnsyUXsmmuu0erVq7V06dKxqd3g4CB7nQy9/fbbevnll8f+/Oqrr2rHjh2aNWuW+vv7A55ZsVx99dX6wx/+oAcffFAzZ84cm+ZVKhXNmDEj8NkVy3XXXadVq1apr69Phw8f1r333qstW7bo0UcfTX8jTl4bZNnzzz9fGxgYqM2aNavW3d1dW7hwYW3NmjW11157LfSpFc7GjRtrkppeYO6KK65o+lg+/vjjoU8ter/+9a9rCxYsqE2bNq326U9/mpdmZvD44483/e/viiuuCH1qhdLqZ+LGjRtDn1rhfOMb3xj7//WHP/zh2v/+7//WHnvsMaPb6KrV2D0KAADiwOYCAAAQDcIEAABEgzABAADRIEwAAEA0CBMAABANwgQAAESDMAEAANEgTAAAQDQIEwAAEA3CBAAARIMwAQAA0fh/zU7hd6CZBp8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ff = f_gaussian_x1x2_fcn(xx1,xx2)\n",
    "plt.contourf(xx1,xx2,ff, levels = 20, cmap = 'RdYlBu_r')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "5113164b-b43d-4552-89b3-df70759ac50d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<mpl_toolkits.mplot3d.art3d.Line3DCollection at 0x2971e6e0040>"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAGOCAYAAACqtBXTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9d5wjWXku/FQp5w7qnMPkuJN2umd3yYsxBgzYYLgG27C+8C1gc8G+13y+n40xNtdg4zXGywXbgBcWvCaDWQMDbJy4M9M55xwltVo5VNX3R+kcldRSt0Kp1T1Tz+83sK1w6pSq6jznTc/LCIIgQIECBQoUKJAZbLEnoECBAgUK7k4oBKNAgQIFCgoChWAUKFCgQEFBoBCMAgUKFCgoCBSCUaBAgQIFBYFCMAoUKFCgoCBQCEaBAgUKFBQECsEoUKBAgYKCQCEYBQoUKFBQECgEo0CBAgUKCgKFYBQoUKBAQUGgEIwCBQoUKCgIFIJRoECBAgUFgUIwChQoUKCgIFAIRoECBQoUFAQKwShQoECBgoJAIRgFChQoUFAQKASjQIECBQoKAoVgFChQoEBBQaAQjAIFChQoKAgUglGgQIECBQWBQjAKFChQoKAgUAhGgQIFChQUBArBKFCgQIGCgkAhGAUKFChQUBAoBKNAgQIFCgoChWAUKFCgQEFBoBCMAgUKFCgoCBSCUaBAgQIFBYFCMAoUKFCgoCBQCEaBAgUKFBQECsEoUKBAgYKCQCEYBQoUKFBQECgEo0CBAgUKCgKFYBQoUKBAQUGgEIwCBQoUKCgI1MWegIJ7C4IggOM4hEIhqFQq+o9llb2OAgV3GxSCUbBrEAQBkUgE0WgUoVCIvs6yLNRqNdRqtUI4ChTcRWAEQRCKPQkFdz84jkMkEgHP82AYBuFwGCzLQhAECIIAnuchCAIYhgHDMArhKFBwF0AhGAUFhSAIiEajiEajAACGYaglwzBMys8TsiEgn9NqtdBoNFCr1Sm/q0CBgr0FxUWmoGDgeZ5aLQCodULIg1gsUjAMA5VKRf8mhHP9+nUcOnQIJSUlYFkWKpUqwcpRCEeBgr0HhWAUyA5CCpFIJMHtlfyZTEiBEA75f5VKRccOh8NgGIYSjkajoZ9RCEeBguJDIRgFsoK4v/r7+1FZWQm73S7LYk/GSGfhJBNOcgxHIRwFCnYfCsEokA1koec4Dh6PB6WlpbIt7FLXWvLrhHDI+zzPIxwOIxQKKYSjQEERoRCMgrxBalui0Sh4ngfLsmkJoZAgpKEQjgIFewMKwSjIC8QlxnEcAFByISnIciEXwkpFOORfKBRCOBymc1YIR4EC+aEQjIKcQSwDqdUiRTpCKNbiLU02UKlUWwhHauGQdGhSg6MQjgIF2UMhGAVZg7jESJZYqgV4J4sj2wW7EC637QjH4XBgcnISJ0+eVAhHgYIcoRCMgqzA8zyi0egWl1gyihGDyRdSwmFZFn6/n7r6gsEg/UxyDY5COAoUpIZCMAoyQia1LVLITTDFIiwiUSO1cHiep4TDsuyWGI5COAoUiFAIRsGOSCX3stMCuh8tmJ2QzqXG8zxCoRCCwaBCOAoUSKAQjIJtIa1tIQHwTHC3WDDbIZloCeFwHEdbEkiTBohrLROCVqDgboBCMApSIl1tS6YoBCHsNYJJBiEOQsJSwolGo/T9VDpqCuEouBuhEIyCLUhX25INCmHB7DekI5xoNErVpAnhSHXUlNYECu4WKASjIAEcxyEYDNKFMdeF/V60YHbCToTDcRxWV1fR2NioEI6CuwLKnasAQDyQv76+jueeey7vwLRiwewMqWyNRqMBz/MYHx9HNBqF3++Hx+PB5uYmvF4vgsFgQusDBQr2AxQLRkGCS4wQQ74LumLBZA9pN08gbuFIlaKVbp8K9hMUgrnHIW1lTPqqyLFLViyY7JH8e6VyqZGsvkgkQj8jJRyl26eCvQSFYO5RJNe2yC1SmYlUTLbHudstmJ0sx0x64UgJR+n2qaDYUAjmHkRyK2Opi4Us/Pm6yRiGkTVecK8sktmmgmfSfE3p9qmgWFAI5h6CdAFKV9tC/paDYOTEXiy0lBv5np/S7VPBXoNCMPcIMq1tkfr784HcFsy9AjkXe6Xbp4JiQyGYewBSuZed0o+lFkw+UCyY7FHI89uu2+fg4CC0Wi0aGxsVwlEgKxSCuYuRi9wLeT9f60OxYHLDbi3mUsLheZ5aO0S4U+n2qUAOKARzlyJXuRc5XWRyQrFgCntcqWxNJt0+SUq0ohStYDsoBHMXIrm2JdvMJECJwRQLxVisSVfS5Hmk6/Ypbb6mdPtUsB0UgrmLIK1tSdfKeCfI6SKTE4oFU9jjZuI6zYRwlG6fCqRQCOYuAckOIv70YgtVZjJGtqnQdzvBAMWzYHLZiKRrvqYQjgICRcRon4ME8v1+P376059mlCm2E+So5t+OYMLhMMbGxjA7OwuPx5PRse6FRWkvWzA7Ibmok8RnSNKA1+uFx+OBx+OB3+9HOBwGx3H3xKbhXoZiwexjJAfy5YIc8ZN0BLOxsYHu7m4YjUYwDIOZmRmwLIuSkhKUlZWhtLQUBoMh5YJ3LyxGxSBSYvXKieQmaqm6fW5ubkKr1aKkpETp9nmXQiGYfYrk2haiwCtHYL0QFowgCJiZmcHY2Bja29tRW1tL3/d4PHC5XFhZWcHY2Bg0Gg1KS0sp4eh0unti0dnPFsxOSCXcOT8/D6vVSq9vKpeaQjj7GwrB7DNsV9siV+aW3DGYSCSCvr4+bG5u4vz587DZbIhEIjQRwWazwWazobm5GRzHwe12w+VyYW5uDoODgzAajQDipKrRaPI+x72K/RKDyRfkeKQXznbdPpNjOAr2DxSC2UfYqbaF+LzzhZwuMrfbje7ubpjNZnR2dkKr1W5LXiqVCmVlZSgrK0NbWxsikQg2NjYwMTEBl8uFF154ARaLhVo4NpstQX9rP+NutmBSQeqaS2XhKO2l9z8UgtknkGaJpQviy5XKK5dkfyAQwM2bN9He3o7m5uacFjGNRoOKigqsr69Dp9Ohrq4OLpcLLpcLQ0NDCIfDsNlslHAsFsu+XnTuFQsGAL2XU2EnwgFSqwzs52t/N0IhmD0O4hKTupTSLQZyWjD5EEwkEsHs7CyCwSAuXLiA0tJSWeYEADqdDtXV1aiuroYgCAgEApRw5ufnwfN8QsKAyWTaNz78e82CSVXgmQ7pCIcoRQMK4exFKASzh8HzPKLRaMZyL3vBRUZcYmq1GmazOSW55BK4TUV6DMPAaDTCaDSirq4OgiDA6/XC5XLB6XRicnISLMsmJAwYDIaczmu3cK9ZMPnUaiUTjtLtc+9BIZg9COnDItWJ2gnFdJEJgoC5uTmMjIygra0NRqMRk5OTec8lGzAMA4vFAovFgsbGRvA8j83NTbhcLiwtLWFkZAQ6nQ6lpaWUdLRabdrxdtuiuNcsmO1cZNlC2poA2JlwlG6fuwOFYPYYklsZZ7PbL5aLLBqNor+/Hy6XC2fPnkVZWRlWV1dlXTBzIU9SX1NSUoKWlhZwHIeNjQ24XC7Mzs5icHAQJpOJkk1JSQlN9y4W7iULJhsXWbbYjnBcLhdWV1fR3t6udPssMBSC2UOQ1rZIzf9MUQwX2ebmJrq7u2EwGNDZ2QmdTkfH2GuFkSqVCuXl5SgvLwcAuti4XC6MjY0hGAzSDDWdTqdYMAVGIQo800FKONFoFC6XKyGGQ543pTWBvFAIZg8gl74tqSDXop6pjhhxibW2tqK1tTVhzjuNIUcMJl9oNBpUVlaisrISABAMBmn8ZnFxEdFoFF1dXQkZartRkLjbKKQlsR3kdJHlclyl22fhoRBMkZFr35ZUkMuC2SkGE41GMTAwAKfTiTNnzlCLQIq9aMHsBL1ej5qaGtTU1MDtdqOnpwcVFRXUpQYgIUONyN3IhXvNgikmsUndZ1LRTjIv8jmFcPKDQjBFBM/zWFlZgcvl2mIB5ILdcJF5PB50dXVtcYmlGmO7BTPbxVQulYJsjscwDOrr61FfXw9BEKikzdraGsbHx6FWqxMy1PR6vSzH3W3cCy6y5ONuR2zbEY7S7TM7KARTBEhrW3w+H9bX19HW1pb3uIV0kRHtqOHhYbS0tKCtrW3bh6kQFkwxLSKGYWC1WmG1WtHU1ASe56mkzcLCAoaHh6HX6ynZlJaWZi1pU0xL4l6yYIh+X6aQEk6qbp9SwlG6fSZCIZhdRrJLTK1Wy7YzL5SLLBqNYnBwEOvr62ldYsmQm2D22oNK6mtKS0vR2tqKaDRKM9SmpqbQ399P64CIpM1OGWr3kouMZHXtRQtmJ0gzO5Vun9tDIZhdRKpWxnKRAlAYF5nH40F3dzd0Oh06OzszdgPdbRbMTlCr1bDb7bDb7QDEnjckYWBkZAShUAhWq5USjtVqTbnI3SsWDLmWd0NygUI46aEQzC4gubZFemPJSTByF1rOz89jaGgIzc3NaG9vz+phuNstmJ2g1WpRVVWFqqoqAKCSNk6nEwsLC+B5HjabjbrUzGbzPWfBAMUjmEIKpG5HOKTJHqnBudu7fSoEU2CQ2hZCIsmFk3vRghEEAcvLywiFQrjvvvvorjwb3GsWzE4wGAwwGAy0D47P56OEMzU1BZZlodfraXfSdE3X5AZZ+HZ7YZM+D7uN3U6Plj7zpBxB2u0zGAyCZdktSQN3A+EoBFMgSCuHt6tt2WsE4/V6sba2BrVanZVLLBmFqIO5W8AwDMxmM8xmMxoaGsDzPDweD2ZmZrCxsYEbN25Aq9VuabpWCJBrdK9ZMMVSbOA4bosIJyF5abfPVGnR+5FwFIIpALKpbVGpVHuGYBYWFqh8SllZWd5pt4oFkxlI0zW73Q6e53HixImUTdcI2ZSUlMjWdK1YBFNMC4bjuG016Ap97GT3XDqlaCnhvOMd78Dv/M7v4B3veEcxpp0zFIKRGcmtjHd6gPZCDIbjOAwNDWFlZQWnT5/G+vp63nORq6cMwX7bueUC8nula7rmcrkwMTEBv98vW9O1YhJMLqrach27WDL+qQgmGakIZ3l5ueg6eblg/814jyJXuRe5XWTEasoUXq+XyutfunQJer0eDodDtlhOOuSysNytFowUqX4X0nStoqICABAKhWj8Jt+ma8V0kRVrkS90kH875GI9MQwDv99PW4fvJygEIwPykXshO305Aq0sy1Jp8kywuLiIgYEBNDY24sCBA/SBlyNAT85FrgDyvWTB7IR0TdecTmfWTdeKbcEUA8W0YHIhN5IUYrFYCjSrwkEhmDyRqrYlG5AbXY5dVabEwHEchoeHsby8jFOnTlGxR+mc9iLB3KsWzE6fT9d0zeFwYGJiAiqVKm3TtWISTDHdVPvt2D6fDyaTqQAzKiwUgskR0toWYu7n8pDKSTCZuNt8Ph+6u7vBsiw6OztTdniUQ/dLSjDpcC8QRjaQS+YnVdM1p9O5pelaWVkZvf73motsL8dgUoHE3fYbFILJAdm2Mt4O5EbnOC7vzKCdCGZpaQkDAwOor6/HwYMH0z5kcrvIUiEXsct7gZDkXuilTdcAUfaHZKjNzMzA6/UCAMbHx2mG2m4Ek+9VF1kuBBMOhxGJRGA2mws0q8JBIZgsQGpbXC4Xuru78cADD+T9kJDvF7ITJcdxGBkZweLiIk6cOEGry9NBbheZXLjbCWY3zk+tVic0XXO73bhz5w54nk9oukbcaTabrSCLcbHjIPspBkM2AQrB3MWQBvKJxpBcsQU5RSqTx/H7/eju7gbDMOjs7MwoE2U3LJhcx7vbsdvnSVR/Dx06BCB107XkDDU55lhsF1kxs8iyPW+v10tjbfsNCsFkgOTaFrVaTYlGjoetUASzvLyM/v5+1NXV4dChQxnf2IWOwZAkA7/fj/Ly8h0znQgUC6Ywx5T+7tKma4IgwO/3U8KRs+ma4iLLHCRFuVhzzgcKwWyDdLUt0kZEe4lgiOXB8zxGRkawsLCA48ePo7q6Ouv5FMqC8fv96OrqAsuyKC8vp5lOarWaLlplZWVbpFHuBQumWKKT6Y7JMAxMJhNMJlNC0zWn05l307ViL/L7iWC8Xm9GG7C9CIVg0mC72hZpYF6OG1VOCyYajeLGjRsQBCFjl1gyCmXBrK6uore3F3V1dWhrawPHcWhubqbNu0gdx9DQEJWrIT1XksdSIA+yITVp07Xm5mZwHEcz1LJtulbMJmfFIjdy7GwJZr+mKAMKwaQE6cWdrraF3CB7RUOMYHNzEx6PB42NjTh8+HDOD5HcFowgCBgbG8PMzAyOHz+OmpqaLVl4ZEEi0ijELTM6OopQKER3xpubm7LFAfYa9poFsxNIfQ3ZAJCma0QhmjRdk2qoSZ+dYi3yZO67DfKMKxbMPQriEotEItvWtkilt+VAvgRDXGJzc3PQ6/U4evRoXvORKyWYYRiEQiEMDAwgGAyio6ODZsJs97BoNBpUVlbSAlC/34+pqSk4nU50d3cDQIJbZj8GP/cK5IyFZNN0LRqNFk2HDCiOirN0Q5UN/H6/YsHsd2RT20LiMHJZMPmMFQgE0N3dDZ7ncezYMUxMTOQ9HzlcZARdXV0oKyvDfffdl3N9BVESDofDOH36NI0DrKysYHR0FDqdjopDbueW2evYbxbMTtiu6RrRu+vu7k5oulbo89+PBEMsmP2Ie55gpH1byMOWqUhlsS2Y1dVV9PX1obq6GocPH8bm5qZssZx8LBjSuU8QBNTV1eHgwYOypbamigMku2VIHQdRGt6P2Te7hd0kNWnTtcnJSXg8HpSVlSU0XZNmqBWi6Rp5ZovVJkClUmV9bJ/Pty9rYIB7nGCSWxlnIx9ezD4uPM9jdHQUc3NzOHbsGGpra+k4crm2ch0nGo1iYGAATqcTKpUKtbW127oZs5lTKqhUqoTCwVAoBKfTCZfLhYGBAUSjUbpolZWV7Wlf9t1mwewErVaLhoaGhKZrUsu0EE3XctUMlAO51t/4/X6FYPYbpLUt0t4LmaJYnSgDgQB6enrAcVxCTAOQz7WV6zhE+l+r1aKzsxMvvviirJL9mZCeTqdLqONIbk0sFX5MlQ5dbNwrBJMc5CdN12w2G1paWsBxHM0slLPp2n5Mj1ayyPYRcu3bkgyVSrXrLrK1tTX09vaiqqoKR44c2bIbkrueJhssLy+jr68vQfpfTv2wXK4Rw2xtTUx0uBYWFjA0NEQXrbKysl3T4UqHvVBouZvH3W6xlTZdA5C26ZpU0iYT66DYVfy5HNvr9e5LoUvgHiOYfPq2JGM3LRiiEzU7O5vgEivUnLJxtRF33fz8PE6ePJmgcyY3weQ7ljQdurW1laZDu1wuqsNltVqpZVOMBf9esmCyWWx3aroWiUTotSstLU3bdK3YFkwuBOPz+VBTU1OAGRUe9wzB7FTbki3kDvKnGysYDKKnpweRSGSLSyzVOHI0L8t0MU+eW7IZv9cVkJPToQOBAI3fzM7OguM49Pb20p10IYLOUtxLFgzP83ll+23XdI0kmKRqulbMKv58YjD7NRX/ricY4hKbmppCMBjEgQMHZHmgdiPIT1xilZWVOHr0aEa9vIH8F41MYjCkJsVut+PcuXMp57bXLJidYDAYUFdXh7q6OrjdbvT09MBqtWJtbQ1jY2PQarUJ6dDZtr7NBPeKBSOn2GU2TdeK6QLNx4JRgvx7EFKXWCQSgd/vl+1hKmQMhud5jI+PY2ZmBkePHkVdXV3G45Dv5/PwbuciEwQB09PTGB8fx6FDh9DQ0LBtvdB+lOuP8gJemvPiuXng9Q023HeiEWpGoDGAmZkZDAwMwGKx0ISBTGMA26FYWWTF2NEXUuxyu6ZrKysrCAQCuHr1akKGWiE2C8nIJ8ivEMweQ3IrY7VaLZvFAcgfgyGp0sTtFA6HcfHixayCe1KCyQfpiCEajaKvrw9utxvnz5+nTayyHSfXOe0G/u4Xk/jazQVwvDjv70/1AQCO1Zjx2G8cQ3u7mA4dDofhdDoTYgA2m41aOLkWDd4rFsxuxkKkTdf0ej2Wl5fR1NQEp9NJNwtS7btCJXvk081SIZg9guTaFqkCslwWBxlXbgtmfX0dvb29sNvtOHv2bNY3uVw9WFK5yDweD7q6umAwGNDZ2ZnRjm+/WTAf//EovtO9nPK9gSUvfvNfbuMnH7gAk04NrVabEAPw+/00fjM9PU0TCgjhZKIyfC/FYIpJbMlN18LhMC3WLWTTtVxiMCTVXklT3gMgtS1kcZQWTspNMHLGYBiGgdvtxvLyMo4cOYK6urq8dr/5zis5WWBxcREDAwNobm5Ge3t7Vuq7+8WC+dnQGiUXg4ZFhOMRTfoZNwJRvOH/3sL333cOVn380ZHK2pN0aOKSWVpawsjICAwGQ4LKcLrNg2LB7P5xtVptQrJHuqZr0gy1XH4zjuNysoyUNOUiQyr3sp0C8l60YEKhEBYXFxEKhbJ2iSWDFIzKJbXPcRxGR0extLSE06dP0xTRbMbZDxbMRiCC//X9Yfp3IJL4+/3xq1rwtZsLWPaEseYN47995Q6e+J37UGpMnQUldckAomuRLFgTExMIBAJU9LGsrAxWq1U2FYZscTcE+bNBJnGQ7ZquzczMAMit6RrHcTnFepQYTBGRaW2LnC4tQCQs4obLFQ6HA729vdDpdDAYDLLsUuSqFwGAl156CYIgoKOjI+e+MnvdgonyAt76pVuIxmIupQY1XIHE6/qLUQf+45GzeOjvrwEApp1BfPS7g/jX/3Yyo3mp1eqEGo5gMEjjNwsLC+B5HqWlpQiHwzCbzbu66Bers2Qxj5sNscnZdC2XGAwhOMVFVgQktzLe7oaV06UF5BfkFwQBExMTmJqawuHDhwGIlfDFnheBy+UCAJjN5ozSo9Nhr1swvCDgLV+8hVVvhL62GYyTi1UDbEaAO3ObGFnxwG7WYt0bBgC8NOPG3z8zhY+8sjXr4+r1etTW1qK2tpam1BJJFI/HA4fDkdDds5AZTveiiyyfbL98mq7lcuxgMAiO4xQX2W4iF7mXQsRgchkvFAqht7cXgUAA999/P6xWKxYXF/dE8zJBEDA5OYnJyUkAwKFDh/J+GPeyBfP556Yx5QwkvMYJgE7FIMQJeFsb8MQ4g3BUwP/4ziC8ocTf9SvX5vGWU9VoLs+9CE6aUuvz+aDT6VBaWkoLBgcHB9M27ZID95qLjAT55UI2TdeCwWBOSsoAFBfZbiFXuZdCxGCyXcidTid6enpQWlqa0B9FzpTnXBf1SCSC3t5eeL1enD9/HtevX5clG22vWjAb/jD+9epcyvdCnACtisEJu4CH1RX4z/5VSi4MAOksPv70GL76rlOyzYtl2QQNLmnTruHhYZoOTaybfLt7FtOCKZZkfiEtwlRN10h2od/vx8jICJaWluiGgcTf0sHn84FlWRgMhoLNuZDYVwSTXNuSzQ1KXGRyPVDZxHSklkGq4sRiKTMTbG5uoqurC2azGZ2dnZT49hLByL0Y/eV/jYPfZmona02I8l5MrvsTXk/+yu1ZN1Y3Q6i05q/KnOrelDbtIpIoJH4zMzOToK9G5GzyPeZuYC9lkRUS0nR2t9uNxsZGCIIAl8uF+fl58DyPkpISeg2T66dIivJebTGxE/YFwUhrW7ZrZbwdiFsh11TBVONlspCHw2H09vbC5/PhwoULsNlsWz5TTIKZn5/H0NAQWltb0dramvC7Fqpgs9hjBSIcfjG6vuV1vZpBKCpAAFBr1eKzPcCCz5vwmcNVJgyv+BJe+5vLE/i7t+bXpjoTSCVR6uvrE3qoLC8vY3R0lPr/iTr0Tnpf96KLrJhil0ajESUlJVTSJrmdhHTDEAqFsLm5KRvBPP744/jMZz6DpaUlHDt2DI899hgefPDBtJ9/8skn8elPfxpjY2Ow2Wz4lV/5Ffzt3/4trR/KBHueYLJpZbwdCkEwO1kwLpcL3d3dKCkpQWdnZ9qHXW6CyWQh5jgOQ0NDWF1dxZkzZ7bcNHIs6HtV7PIrV+fAxX5ug4alacnBaHyuL816seQDSo1quPzxwP/YaiK5AMAvRtbhD3MwandXKia5h4rU/0/SoXcqGLzXXGTFJJjkIH+qdhJkwzA/P483vvGNMJvN0Gg0ePLJJ/GqV70qZ1Xlp556Ch/+8Ifx+OOP49KlS/jiF7+I173udRgcHERjY+OWz7/44ot497vfjb//+7/HG97wBiwsLOD9738/HnnkEXzve9/L+Lh7tpcsCeSHw+GEpmC53pSk6HI3ergQl9itW7fQ2tqK06dPb7uTlDsGs9NYfr8fN27cgMfjQWdnZ8odiRx1GXvRgglHeTxxc57+La15sZvi12jJI2aLveVUdcL7nICEIktATAz4cd9K3nMD8nMFEv//wYMHcfHiRXR0dKCurg6BQAADAwN44YUX0NPTg7m5OXi9XlmUt3PFvWrBbHdssmFoaWnB/fffj/HxcTzyyCMAgMceewz19fU4duwY7ty5k/WxP/vZz+K9730vHnnkERw5cgSPPfYYGhoa8IUvfCHl569fv47m5mb8wR/8AVpaWvDAAw/gfe97H27dupXVcfckwQiCgM3NTSwtLdEHIN+HQK4iRIJ0MZhwOIw7d+5gbm4OFy5cQFNT045z300X2erqKq5du4aSkhLcf//9aXP271YL5vLwOnzhrb/Prx6twB++oiXhNT0LLLpD9G8Ss/GHY33dJZ/94pXZvOcm929FCgaPHTuGS5cu4ezZsygtLYXD4cCtW7dw5coVOJ1O+Hw+hEKhnQeUEcW0YIrRcIwUg2dzbIvFgpaWFjQ1NeHWrVtYW1vDJz/5STQ3N2d17HA4jNu3b+Phhx9OeP3hhx/G1atXU36ns7MT8/PzePrppyEIAlZWVvDtb38br3/967M69p5zkZHaFpfLhcnJSVy6dEm2seXMJEsVg3G5XOjp6YHNZtvWJZaMQuiaJUMQBIyPj2N6enrbpmUEmVhCO2EvWjBP3V5I+fq776/H93oTa5GCPPDMqEM8PgCnP4Jam46Sjl7iXlvxhDG87MXh6vzSSQupMEzcMURh2O12Y3R0FB6PB1euXKGCjyR+U6iFmFhOe7WSv1DHBZD1b+r1emmRZVlZGd785jdnfez19XVwHJfQDBAAqqqq0tbfdXZ24sknn8Tb3/52BINBRKNRvPGNb8Q//uM/ZnXsPWPBkEA+cYlpNBpZ04oB+SX2yViCIGBqagq3bt1Cc3Pzji6xVGMVMk05HA7j1q1bWFpawsWLF3ckFzKnQlowoVAIS0tL8Pv9GR8n3/lMrPnQNe/Z8rpZp8KxWgu65ze3vBeM8lCzDFrsYnbW2YZ4kkaypMz//P5QXvPbTWuPBJMtFgvq6+vx4IMPoqWlBRzHYWRkBM8//zzu3LmD6elpbG5uFiTd/F5ykZHnO1uCkVMmJnnzsp17dHBwEH/wB3+AP/uzP8Pt27fxk5/8BFNTU3j/+9+f1TH3hAWTqrZFrVbvaYIhFkwkEkFfXx82NzczkrBPBbn6uJCxpGS1sbGB7u5ualVlmuBQSBfZxsYGurq6oFarMTo6Cp1OR3fOZWVlKecox87+Mz+fjI8X+38BgE2vRoTjaQC/ucyAaWeA1rywDHCi1orJ9QCsBnVCLYyaBRXFnHIEsOIJocqSe8pyscQuk7t7SvW3ZmdF959UHTqfugypGO1uo1gEQ+LI2Z6zHDIxdrsdKpVqi7Wyurq6xaoh+NSnPoVLly7hj//4jwEAJ0+ehMlkwoMPPohPfvKTGScbFJ1g0rUylkPrKxlyWzCCIODKlSuwWCwZS9inGwuQl2AEQcDc3BxGRkbQ3t6O5ubmrG7uQrnI5ubmMDw8jPb2dtTU1FBXjcPhwOTkJAYGBmhvdSIEKUcbgkCEw9VJF/27vdKIsVWxxmXRHcJPBlZpjOVjr23F//r+CDZimmRhTkAklnb23JgzwTV2uMqE/qV4ZtnHfjCML/92boWXe0nsMrlDJMluWllZ2bIpkMqhZHpMoHgWTDFiMJnIWaWC1+vN24LRarU4e/YsLl++nOBiu3z5Mt70pjel/I7f79+y0SO/Wzb3adEIhmSJRSKRlLUthAzkzHKRi2AEQcDCgujLb2ho2FI/ki3kahQGgGbK9fX1weFw4OzZs7QqPNs5yWnB8DyPwcFBrKys4MyZM1TcUaVSJfTmkApBzs2JlfZlZWUwmUx5zecr1+YSiiRrrDpKMAKA//uiuEs3aFh0tJThVK0Jz0246ed/OSLWzcxvBBPGnXIk/n171o0oL0DN5p7tuJvI5PlK1t8i6dAul4vKoZB0aNLdczvyuFctmFzbJRMZmnzwkY98BO9617tw7tw5dHR04Etf+hJmZ2epy+tjH/sYFhYW8MQTTwAA3vCGN+D3f//38YUvfAGvfe1rsbS0hA9/+MO4cOFCRi52gqIQTCZyL4Q95dxxyEEwkUgE/f39cLvFxWe7lsGZQk6C4TgOs7OzMJlM6OzshE6Xm7tGTgsmGAyiq6sLgiCgs7MTBoMh7djJQpBESHBtbQ08z+P69esoLy/POhD9na5E98DQslhAadap4A1xmHWJRHGyTrSYDtoNlGA0bGKNjBS+cOL9xAvAj3pX8ObT1Sk/vx2KYcHkks2VLIcSCoWoHMrAwACi0SiVsyebg1QFvPdSDCZXggkEAmhoaMj7+G9/+9vhcDjwiU98AktLSzh+/DiefvppNDU1AQCWlpaoKxQAfvd3fxcejwef//zn8dGPfhQlJSV45Stfib/5m7/J6rhFIRhys23nk5QWRspFMPlma7ndbnR3d8NsNqOjowPPPPOMLBYRIdh8F/SVlRWsra3BarXi/PnzeT1IclkwpP95RUVF1srMDMPQQsKqqircuHEDra2tcDqdGBkZQTgcpo2gysvL01Y8O31hrMZUkAGgzKjBWkxB+VSdFb0Lm/CExOv4qkPiomnWx+dJYvnSeEu5SQOHL67CLMUXr8zkRDDknHcTcngIdDpdQv+U5Op0IghJCKeYNTDFPHYu65jX682pVUYqPProo3j00UdTvvfVr351y2sf+tCH8KEPfSivYxbNRbbTAkZugmg0Kps4Xa6S/YIgYHZ2FqOjo2hra0NLSwutq9mNws2dwPM8xsbGMDc3h/LyclgslrwfonyD/ESG3uVy4ciRI7JYegBoIJrocjkcDjidTkxPT0OlUiUkC5D75svXE0UtSwxqOP0iObTajZhY91OCORJLMw4k1cpoVQzCXPz3ePiIHd+8tQQAsOlVcAfj98HCRgihKAedOvveH7sNuQstU1Wnu91uuFyuBDl7QRCwvr6OkpISWdWNt0MxLadc06P3c7MxYA8E+dOBYRjZM8lycZFFIhEMDAzA5XLh3LlzCf5QOXvM5EowoVAI3d3diEQi6OjowNzcnGyxnFzH4TgOAwMD2NjYQGVlZUopilzmk/w3CURLFzKpzD2JC/ywJ9E95pb0fPnazcS6mLZYOvLIWlzG/9WHymEzaGhLZQD43fvr8e+3liAAeO2RCvxHkgvu23eW8N8u1Od9noVGoSv5pdpara2tiEQiWFxcxNTUFMbGxhAMBhOSOuTYHKVDsQkm1xiMQjAFQrF7uLjdbvT09MBoNOLSpUtbLKliqyATrbOysjKcPXsWarUaLMsiEkntuskGuVowgUAAXV1dYBgGdXV1aRevXBa1nSxespC1tbVRmfTl1TW4AonXPJ1rCwD+vx+N4jNvOYLbc/F6mfpSA37lSAUlGDXLoLbEgJpY0eX4uj9B0wwAnsqBYO4GC2YnaDQaKsLZ0dFB1aFdLhdN6pDGbwwGg2zz248Es5+7WQJFJJhi9HBRqVQZSWJIU3xTqQwXYn7ZEIwgCJiZmcHY2NgW+X+5Kt5zicE4HA50d3ejqqoKR48exdjY2Lap5tmmTWcDIpP+g7EQAFfKzzAAGmwazLrjhPOLUQf++zd6sRmKX9ehZS8++qpWWPRqeIJRRHkB3lAUp+utWHSvYWzVh/sabAlp0NOOAAIRDgZN5otKMXTBinFMaWKBwWBAXV3dlnTotbU1jI2N0QZsJB06H3d5rqnCciCXGAyJZ+3XbpbAHrdg1Gq1rLUwmRBCNBpFf38/XC7Xjim+u6Ftlmp+fX19cLvdKQs75ZpTNi4yKeEdPnyYZr0Uoh9Mtgvid3vSt6K2G1nMuiNgIECQKIvdmhUr+lkAPESCEQQBKslhJ9b9eNUhO54eWIMnxKGjpTSBYAQAvxxx4PXHKzOeazFQLIJJZUUkp0NzHEfVoWdmZjAwMACLxUIJx2azZbVo72Why3RQXGQFRCG6UG433ubmJrq7u2EwGDJK8ZU7yL/TYuz1etHV1QW9Xp+2sFNOgslU9r+/vx9Op3ML4RVb7JIXhASxymQYdFrAH0SpUQNnTJKfkAoAVBgEOEIsNoNRDC55aeElANya2cCbJUrLjLD1N3/q9mJWBHOvWDCZZnIl10gRt6fT6cTQ0BAikQht1lVWVralWVcyik0wSgxmF1EsF1mq8QRBwPz8PIaHh9HS0oK2traM57dbMZjFxUUMDAygqakJBw4c2Da2sVsuMr/fTyVfUhFysS2YH/amtl6I1IsrlklGrBeLXgWPJBvMHwWqDTzmfQyeujYKAFCxAMeLFf3v7WyEXs0iGOXxxM2tIprd85sIRjjos3CT7dXFXk7kqqQs7Q4pCAL8fj+N30xPT9N204RwkpXCi00w2agdAHEXmRKDKRDklotJRQjRaBQDAwNwOBwpG29tB7ktmFRj8TyP4eFhLC4u4tSpU1QrartxdsOCWV9fR09PD2pqanD48OG0Lg+5LZhsxvvC86kl9MkInhAHDQtsxIjmcKUJL83GBS89EQZHaqyY921iaE20hEo1AtZDDIaXPfB6vWguN2B4xYdV79bEAQHA9SkXXn7QLvu5yYW95CLLBgzDwGQywWQy0SxCUpS7uLiIkZERGAwGSjilpaVFk4kBcovBECFYJQZTIBQ6Tdnj8aC7uxs6nQ6XLl3Kuuq90BZMMBhEd3c3OI5DZ2dnRgVXhY7BEOXoiYkJHD16FHV1dduOIbcFkynCUQ6LmzsndJxusOGlGTdsBjUisToXlon3fplwiOnKK7Gs5ZcfrsS3e9YQiAp4+PHb4CWxm1qrFoub4YTxv3ZzPmOCAe6+NOXdOibLsigpKUFJSQlaW1sRjUZpsSfp7mkwGKjMjdVq3VVrJhcXmc8natwpLrIcUEwXGdESGxoaQnNzM9rb23O64QuZpuxwONDT05N1Bbxcc0rlIpMmGFy4cAE2my3Nt0UU04L55u3FlK+bNAx8kfgY7RUmvDTjRmOpAUMr4gNNyMWgiqc0u2Pxl+sz8fRlTySpNicaRHIHjFuzm+AFAWwG95diwcgHtVqNiooKVFRUABA3a1NTU1hfX0dfXx94nk/ITjMajQX9HXIJ8vt8PqhUqpzlnvYC9rQFUwiCIYvk+vo67rvvPqqnVOz5SVWQiYVw5MgR1NdnV0sh16KePI7P50NXVxe0Wm3GytHFtGCevJmaYE43lOCKJNuLtD9mGCAUjROzQcPi1bU8fjQj/k1IZ34jSGM4jaV62Awa9C2KpLPg37qA8ALwraujeMN9DRlZoHeDNZHJMXc7FqLX62Gz2RAMBnH69Gl4vV6aDj0+Pg6NRpMQv5FLPYQgVwvGZDIVLW4kB/Y0wajVallbuYZCIYRCIQQCAXR2dqZtF5wp5I7BRCIRdHV1wePxZGQhpBtHbhfZ6uoqent7UV9fj4MHD2Z8wxfLguF4Hktp3GMNpYnXfGRFFL1c3BA/X2JUY8MfRZlRjQdrw/jZAptAPOcabQhFefQtejDrCqIslPr6k2QAAHiqexWV4UXodDoq1FlaWrpFImW/iF3ux2OS45I6GIvFAovFgqamJnAct0UFwmw20+skR3fPXGIwckj1Fxv3jItsYWEBg4ODAJC3ECSBnC4yooJcWlqKjo6OvHrLyOUi43ke4+PjmJqayqjNcjLk1rjKFD/qW034W1plb9El3vJDy6JbbN0XhlbFoM6qx4bfCzXLwKxh8LqjFfh+7wod5/NvO4Z/fG6aWi1E0ywZnOQSTHuAhx56aEtMgEikEP24bM9TDtytLrJ0x021yEs17AAxHZpcq+HhYUQiESqqmkk6dCrkY8HsZ+xpC0YOguE4DoODg1hdXcWxY8fQ29sra38ZOWRZFhYWsLa2BpvNhjNnzuTdW0aOnbAgCFhbWwMA3H///bBarVmPIYdCdKp57YR/v5XoHtOqRYKptuq2BP7XvPG/X3nIjuXY+4SQpEdrKjPApFOjtTzR1WXVq7EZ0zcjactSRDgBk44ADlTGJe6JRArpe0N+K6fTCbPZvGt+97slyJ8JMo2DaLVaVFVVoaqqioqqkmtF0qGl8ZtMunvmEoPx+/0Fjw0VGkUlmJ1cKPmmKXu9XnR3d0Oj0eDSpUsJfVfkSFdUqVQIBoM7fzANOI7D0NAQVlZWUFFRIYvukhyLutfrxdLSElQqVV6dOjNpZJUpGWbzu4ys+hL+9sd6tpxttGJwSbQ8Ki1aOH1hSLngDccr8dgzUwBEy2TCDfyob4W+vx6T/G+xJxJMc7kBvQviuEatagvBAMBXrs/jr994mP4tlUjheR4ejwc9PT1wOByYm5uDyWSiO2Y5XDTpcK9ZMNkeVyqqWl9fT6+V0+nE0tISRkZGoNfrE65VqnqXXCwYxUVWYOSTpkwKExsbG3HgwIGEeIlcPWbycUf5/X50d3eDYRh0dnZibm5OFmsoXxfZysoK+vr6YDabYTKZ8gp2FsOCmVjzIcrHP8MCNP34lQft+Nmg2JkyGBHl9KMx8ik1anCxpQTLPxRJJMoD3xyLB/cBwOkTu6+2JhFMQ6meEowrjcvshXFn2jmzLAubzQaNRoODBw/CYrHA5XLB4XBQF812Dbzywb0S5Afka0lOehS1tLTQtGep61Pa3ZOkQ+eyqVVcZAVGLi4yqVVw+vRpmqYIxFVUC10cuRPW1tbQ29ubUKRYyPTiTCAIAsbHxzE9PY0TJ07A6/XC7/fnNZdixGD+406ie6w6pngMiNZIJMYYm8HE63ZfvRW+MA+PRMp/0Q/o1AxCsW6WPICXZjZwvqkERg0Lf8yNRm4BjYqhZJaMjUA0owWOYRhoNJqEvjekYt3pdGJychJqtZrGbvIVgCy22OVuH1duSzC5u2cwGKTxm/7+fnAch5KSEvA8j1AolJWXYr/LxAD7wEWWzQLu8/nQ3d1NXTvJvlGGYWRNHMi20FK6iCcHzYshUkkQiUTQ29sLn8+HixcvwmKxYGJiQpaOlrttwTw7mmgp6FTigs4AeHYs/t7fvvkwvnFrAXdisvy/HHWgtWIegOjmIm61zpZSPDPmBMMAgiDK8F9oLoVZr4Y/Ilo7005/bG7bz/0nQ+v41WPplRhSnVuqivVUApCEcLIpICTHKwbBZCubsl+Oq9frt3T3XF9fp3VtZHNA4jfbxdoUC6bAyCYGs7S0hP7+fjQ0NGybSit37UqmY4XDYfT29sLv99NFPHksObO/MoXH40FXVxdMJhM6OjroAyhXy2S5kMlYEW5revKUUyzBFwBo1QzCUQFWvRqvPVqJbyc1CfvyVbEfiSlGMCwD1JWIac0lBg1c/giuTDgR5QVwEt/Z6IoPLAPqmktnyXztxvy2BJPJeRK9LZLxFAqFqHWTXEBYVla2be1NsQhmv7UtzhWku6dGo8Hk5CQuXboEj8dDe98MDg5uG2tTLJgCg8RgtjPjOY7D8PAwlpeXM9LqKoYF43a70dXVBZvNlrCIS1EMglleXkZfX19KNQM5aljkroPZabxbs26ke5dlALNWDWc0gsZYLczYWjwZoL3CiPE10RLxhaL0O7MuMYnjQIURN2fc8IV53Jh20cp+vYZBMCKg3KihVf/RNG6ysaTkg2Tk8lvpdLqEHbPX64XD4cDq6irGxsYSAtDJtTfkePtF7DJf5CqZL8dxieuTXIu2tjZEIhHqThsZGUEoFKK1b16vF5ubmzuuZ5ni8ccfx2c+8xksLS3h2LFjeOyxx/Dggw+m/XwoFMInPvEJfP3rX8fy8jLq6+vxp3/6p3jPe96T1XGL7iLbDoTN0+08fD4fenp6aKA8k3TB3bRgpI3L2tvb0dzcnPac5XSRkWOnO5YgCBgdHcXc3BxOnjyJqqqqlOPkO5/dluv/Qe9Swt8mrQq+cPz6kJqVE7UWBCMcnJLOlhVmLZbdIXjDHI2tRHlgNEYKx2osuDnjBgB8r3uFWit6tQrBSBTamCvOolPBk6b4MsQJOzYhy2fhlRYQNjc3pwxAW61WWuxJnhcli6zwx021fkljbYCY+ONyufD000/jz/7szwAAjY2NaG9vx2te8xq0trbmdPynnnoKH/7wh/H444/j0qVL+OIXv4jXve51GBwcTNvO/G1vextWVlbwr//6r2hvb8fq6mpOGb172oIhFyVV1tfy8jL6+/tRV1eHQ4cOZXzjyFl9v50FQ/rSr6+v79i4TM557ZSKHQ6H0dPTg2AwiIsXL6Y1weVyke2mBfPMSGL8JRyN/57SbLD2ShNeGHcmWDu9Cx5UWXXwrotWjFmngjfEYSXmcjvXZMNXrosxmquT8eMQMnH4xHhMuUkLTyiQdo5PvrSARzpTP9Ryk3FyAFpazzE7G1eaXllZgd1u39Xam3uJYDK1nEg69O///u/j937v9/COd7wDAPDNb34TH/rQh3Du3DlcvXo16+N/9rOfxXvf+1488sgjAIDHHnsMP/3pT/GFL3wBn/rUp7Z8/ic/+Qmee+45TE5O0nWrubk56+MCycp8ewxE1kHKnDzPY3BwEP39/Thx4gSOHDmS1U2zGz1cfD4frl+/TiVpdiKX7cbKZU4AUo61ubmJa9euQaVSoaOjY1v/bqFdZDzPY25uDmtra1ntjNKN5/CFqeVBEEnzc9aXGGh9C8sAJi0LX5jDkltS0xQ7jgDRKjldFy80lVooJBYTjrnFFjbi5KJKYRh8f5sOm0BhrQlSe3PixAk88MADOHr0KAAxpf/KlSu4ceMGxsbG4HA4ZNUATMbdlEWWCXIpiyAyWb/+67+OZ599Fk6nE48//njWxw6Hw7h9+zYefvjhhNcffvjhtGT1wx/+EOfOncOnP/1p1NXV4eDBg/ijP/ojBALpN05pzyPrb+wikrO+SO0IgIzl65MhdwwmeSxSR5KLZSUnwSQvxKQuqLW1Fa2trRkVQRbKRRYKhdDV1YVIJAKe5zEwMACbzUa7F6ar89huzk8PrKZ9z6pXwxeKgoRGqq1aXJveAABUWnRoKTfg2tQGrd5XMYA3HD/35nIjrAYNKsxarHnDycPDplfDHUtvlpIan4ILZ53BtO7L3UwZZlmWJpqcO3eOytvvRu3NveYiy7Xuzu/3002g2WzG6dOnsx5jfX0dHMdtcYNXVVVheTn1ZmdychIvvvgi9Ho9vve972F9fR2PPvoonE4nvvzlL2d1/D0dgwHiizhZuGtra9M2uMoEhYrB8DyPsbExzM7O4sSJE6iurt7h21vHkjMGQ8bieR4jIyNYWFjYUhe003wKYcGQhIfS0lKcOnUKDMMgFArB4XDA6XRiamoKarWakk1paWlCUkS6OX3rTmr1ZECs2h+X1LdMO/wIxpig1W7EyVoLrk1t0PfffKoa3+6OP3zN5WKswqJXJxDMqVoLehY9OFpjTvg+nWuKuQgAhpa9OFpT/CZS0vttp9obaYC6rKwsr3TfYknF7DeCkTNNOfn33u4aEAvzySefpEkHn/3sZ/Ebv/Eb+Kd/+qeMYt0Ee9qCAcSFbnJyEk6nE8ePH8964U6G3BaMIAgIBoPo7e1FKBTa0fWUDnISDLE+QqEQenp6EA6H0dHRkdXNWggXGbGi2tvb0dTUhGhULD40GAyor6+nUhwbGxtwOByYmprCwMAADUwDqQlGEARMOdJL9qjYxAfpqdvxZICGEj1OStxfejWLD7+yBT/uX0EgVmBZZ9Oje96NqfXEwtPGMj16Fj3bB+2xlWgef34an3/7iZTnsZsLLzle8jGTa2+kasPS2huSLJBt8669HguRG7mcL6mhybebpd1uh0ql2mKtrK6upkzuAYCamhrU1dUlqLkfOXKEtpY/cOBAxsff0wTj9/upXH+uLrFkyG3BAMC1a9dQWlqKM2fObJFgz2ZecsaG3G43RkZGUFJSktO85HSRSbPWiBWVjryS6zyCwSC1bjiOQ1dXF+x2O/2MVqvFVUl/F3psSFojBxNjPLfn4m2Ra0v0OFkb3xA0lxthM2jwlpMVePKO6HaL8gL+x7eHthAFqfAPRfmELphlRg3NWCMFmlKQbLRiI1NCS1Yb3q72pry8fMcd7r0Y5M/Vgsm3Dkar1eLs2bO4fPky3vzmN9PXL1++jDe96U0pv3Pp0iV861vfStBCGx0dBcuyWfen2rMuMuIS02g0aGtrk4VcAPmytUhXTEBMJcwkrrHTvOQiGEEQ0NfXhwMHDmybGr3TfOSq5L9z5w5VCcj2gdHr9VQU8vnnn0dbWxuCwSDt22G1WvEvfSmup4RhVpKKL6WEUGvT01oXALRG5jdPxQnmx/2rWPeFUSuRnQGAhVhSwMJGEEerLeiPCWk2lRsowaSKwwQiPDzBCCz6RDdTsSyYbJFP7Q1Q/H4wu418YjByuMg+8pGP4F3vehfOnTuHjo4OfOlLX8Ls7Cze//73AwA+9rGPYWFhAU888QQA4J3vfCf+8i//Er/3e7+Hv/iLv8D6+jr++I//GO95z3uyco8Be9CC4Xme7naPHz+OhYUFWeVGVCoVwuGtgdpsEI1G0d/fD5dL3DnX1dXtCRVknucxPDwMnudx5MgRNDU1FXU+wWAQkYgoEJmuwDTbOVksFtTV1aGtrY3upAd+Mbbls4IQtx44AVQ7jFTZswwDXhBQZ9PhB71xxWROUo1PsLQZgppl8InXH8Qj3+ijr5NmZfMbQbz1VBUlmBqLFj1ManIh+MatRbzvgdyvjxyQg9C2q70ZHx9HMBhM6KVisVj2XD1KoZELwfA8L1sl/9vf/nY4HA584hOfwNLSEo4fP46nn36arg9LS0sJaetmsxmXL1+mqdHl5eV429vehk9+8pNZH3tPEUwgEEB3dzd4nkdnZydMJhOWl5dlb5ucz8Lp9XrR1dUFnU6Hzs5OPPvss7LMj8wr14eeZGZxHAetVptT/xYp8o3BEEFPhmFw9uxZWXasyWPodDqU2isRiG4lGCDRNWXWidphalYkGFIoWWHR4enBNfq59Vg9y7w7cRPyO/fX40JzCTWMSo1quPxigWWY4xGWsIkrEEVLuRET636oWSZB3Zngx/2rWwhmv1gw22G72puZmRnqQXC5XDAajbtWe0Oerf1CbD6fWOCbbwyG4NFHH8Wjjz6a8r2vfvWrW147fPgwLl++nPdx94yLbHV1FX19faiqqsKRI0foBclHsj8V8onBEL2zpqYmtLe3g2VZ2WIn0vTibB96l8uF7u5ulJWV4fjx43jxxRfzdm/lo8o8PT2N8fFxtLW1YWJiQtZFLHlOO9WVEARDImEEJHnEeg2L7nl3QoxmxhkQg5kbiUkDNVYtHL4IjcMcqjTj+vQGjFoW4QCPBcnnpxwBPNhehol1f0pyIcfZ6dwKjd0gtOS+N5ubm+ju7sba2hqmp6dhMplosoDNZiuYhUGe0WK5yLK13gnBKGKXeUKa3puqLa+cQflcx5Om+ibrnck1P2mBZDYPwdzcHIaHh3HgwAE0NTWBYRhZ4jm5WDBEvcDhcODChQtQq9UYHx9PO362i1uqz3+3ZyXFJ7fCl3CJBAAMbFoG37m9kPC5jUAUS5shDK0mZox9p3sZTZJOlnaTuGCEYs3FRlbiOmMrmyGcbbDiW3fEbLVKsxarSfUzvAD0zLtxqt6W8Pp+t2C2A8uyKCkpAcuyOHbsGHQ6HbVuhoaGEmpvysvLZe3mWGyC0ev1WX3H7/dDo9HsmoVXKBSVYEKhEG7evIloNJo2vTffrpapxsuGEILBILq7u8FxXMpMtt2owE8FomiwurqKM2fO0DReueaUbQwmGAyiq6sLANDR0QG9Xg+/3y/7rjx5vIm11AKSejWDYCzLy6pXJfV/ERetzRCHm7Me+qqGFQslB5e8uDIlZpqpGDGGM7Tiw0szG/SzEV6AmmWoReQORqn7TICobUZwotaCX4w6tszxO93LCQRzN1owqUCC/BqNJqE1sd/vpxmDctfeFJtgculmKWdxa7FQVILRaDSw2+1oaWlJewGIZIJcyIZgSA8Hu92OY8eOpZxjITTEdgJZzEnwPFXfm910kW1sbND04WPHjtFzKYQWmRSBMEclWpIRkbimkpuLEfKJCSLDblRj3R+FWcPAFRLwvWvDWNoUr0NzmQETDtGd9eJEPB161hXE6Xorbs3GU46bygyYjrm+PCEOBg2LQIRPO0fpeOnOsZDYS+nC0tqbxsbGhNqb6elpWg+V3Cky22PuF4kaQjD7HUUlGJVKhfb29h0/I6eLLBNCEAQBU1NTmJiYwOHDh1FfX5/2xpQrBiMtkNwOTqcT3d3dqKiowNGjR9OS3m65yBYWFjA4OJjgopOOAci7U5bO6cmXFtJ+jpOcvtSCqSvRo81uxPOSFsbemOJya6UFt+c20e+Kz7VK7cdEzOKZWI9bS9MOP97b0ZBAMBdbSijBjK74UF9iwNiaD8ubwZQFl2veMP1tdtt6AYrXLhnY2ZKQ1t60t7enrL2RWjc7pc8WK3MNyK3Ak8jEKBZMnsikq6WcLrKdkgYikQj6+vqwubmJCxcuJFSzpoKc6szbjSUIAmZnZzE6OopDhw6hoaGhoNL/O5EdiUstLi7ivvvuo1lDyWOQuWerLZZuTlL8Z39m8Ze3nKrGV2+IZPRQexmGl70J7xNXWnuFCbfnNuEMxK/Bq0414erPZsEgXlipgpgs0FSW6B//dtcSJZKrky4cqzXHCCYEexodsxvTG7jYUpr2HAuJYrVLBrI/z+TaG4/HA6fTiZWVFYyOjtLam/LycpSUlGypvSlWFT85di5ZZHLV/hUTRSeYnVAICybdwkm6OxqNRnR2dmbU63w31JmlwfNz586htLQ0xbfjkNNFlmoRikQi6O7uptI46R4EKcHIgeTzmnEkZmLp1SyCUR4qNm7BsABc/njfl5e1l+GXI+v07wqzFg5fGLwALG+GEiwNmxY401wBYDahIr/KzGLRy+Ovnh4BiecAYv8Ygu6FTVj04qLiCXGwGVI/at/tXsbFllLFgskCDMPAarXCarXS2hvSuGtsbCyh9qa8vBxms7noFkwuLrL93s0S2AcEs1tpysTV09LSgra2towfPLktmGSCCQQC6OrqAsuyNHieyzjZIt35e71e3LlzB2azGRcvXtxWgmYngsk1DRoA3IEIoklfJynBUvcYD+BGTJpFo2Jwqt6KVU/cktBrWJh1amwGo3g+qUdMhV6Mq0hrWVQMUGI2YNHrw0aYoUkAAPC2dgZzAQ2uLYjjvyCJscxvpI4jXptKjMPcKxaMnIu9Wq1GRUUFFXIltTcOh4PW3phMJqrPt9uZWbnWwSgxGBmQiYusEARDHi6e5zE0NITl5eWs1Ial4xXKgnE4HOju7kZ1dXVWfW/kJBjpw7G6uore3l5aB5SJ5D8grwVD8NXrc1veT1dzQqRijlab4fJHEkhkcSNICSL523YDoFGxaLEbabtjTgAGl8X/rrPp0FxuxJWYFprBZsevN3G4tiDGdwwqILDDrbsRiCLKC2CKYMEUQ7IlVxdZNkhVezM3N4doNIorV67AbDbT2E0ha28IcnWR3Q0Es6cbjgGFIRhAvNEDgQBu3LgBt9uNzs7OrMkFkFdDjIxFkgzu3LmDgwcPJmRmZQK5XGQAqJtsYmICPT09OH78OA4cOJDRAiE3wUjH+n5v+viLVS/um1hGrFchR3+grQxLEi0xrYqh5GLQbP19K2LGYntFahdgtVVHpWUAYMkv4HX3H6NOs7ceL6Hvsdv8XLcl6c93uwWTTsG5UCC1NxUVFbBYLHjwwQfR1NSESCSCoaEhvPDCC+jp6cHc3Bx8Pl9BXJW5xH/kkokpNopuwewEtVotex0MIO7GBwcHs7YOkiF3C+ZoNIre3l44nU6cP38eJSUlOc1JLguG6K5tbGzg/vvvz0qCppAWzLo3kvCe2JVSPOemMj36Fr0oM2nwqoN2PBUreHz98Qrcno0rKR+qMqNvUayDserVCEQSg/D2WGLSgQoT/gtxORmTVgVfmMOUIwCdOn7fDC97xfiAQQ13IIrFQPw9XgC0LBDmATUjICrEz+WJG3M423A0p98kHxTLRVbM1Ojk2hufz0fdaRMTE7T2JlUvolyPKwjCPWvBFJ1gdrrBk11ach2vr68Px44dQ11dXV7jyWlhCYKAkZERGAwGdHZ25uwrlpNgbt26BY1Gg46OjqznUygLpntuq9x9NGaK6NQMzdZqKTNCp47fMxoVi8ElMYOMAfDaI3ZKMP5YqjIRxQSAWIwe9SWJcS9f7LNOfyLJLbpDEAQB9SV6uANe3JG0BQBEcgEArVqFqESy5sbUBoaHh8XziEbzXtQyRbEIZq8oKTMMA7PZDLPZnFB7Q3oR9ff309qb8vJyWCyWrMmRPIfZEozf709QDNmvKDrB7ASpSytfX2k4HEZvby8A4OTJk3k3LwPExVwOC2t9fR1erxdlZWU4e/ZsXrs8OQjG7RYXcYvFghMnTuQ1H7ktmMdfmNnyXihGMIcqTeiLkcipeituS+pUnh5YQ9e8+HdjmQGX2srwt7+YAiBmeqlZBr/f2YB/eE4cn2QV/0KSdXai1oS+RR8sOhU8IZFoSP+XKC9gxRPG8RoLBpa82Aikvi/CXOK1CfEAqxZJ5dq1a7TBGikoLNSCXCwX2V4p7kxGur43DocDCwsLEASB9r3JpPYGAN18ZnvOXq8Xra2tWX1nL2LPEwzJUopGo3kRDGnVa7VaoVars+5rkA75yv9LizpNJhOqq6vzfgDzjcEQfTMAOHDgQM7zIb72dHPJZXFLZ8EQNJcb0bsoEszRajO+fjNejPl0/ypmXWJq89lGG1rtxoQMsYeP2PHQwXJKMF3rwPUpF346FCeYjpYy9C0mytMcr7XQws2RVS/ONdmoW06nZqleGXGRRVNw/6DPjDIAFy9epHL3c3NzYBiGLmjl5eUZpc5ninvdgtkJO9XeGAwGem1S1d4AIsEQfcBsIFcvmGKj6ASTSSYSwzA5u6FIm8/h4WG0tbWhpaUFzz33nKyB+VznFo1G0dfXB7fbjQsXLmBiYkI2XbNc5kT6ySwtLeHs2bN46aWXZG+bnO9YoShPWxmnQkiyevvCHIKxvxkAI6txYnjFgTKwDAO9hoU3Zon81tlaLG/GNwtjbuDPfzyaMH6lRVzgifUCAGcarLgxvYFQlMeL4y781tka+t7BSiOGln2I8gJqSw2YjtXuaFgmQc7may8t4A8PiotabW0tamtrwfM8PB4PHA4H5ufnMTQ0BIvFQskmW7mUZNxrMZh8Nqi51N6QdSuX4yp1MLsEhmFyjnNwHIfBwUGsra0lCELKGTfJNU3Z5/Ohq6sLWq2WFnXKKZwZiUR2/qAE4XAY3d3diEQitHhSrq6WcsZgfjy0se37wyvxKv0xCaE0lxswJSnMPFApPrzhGAEZNCxO11vxzVuL9DMhXoyrmHUqSkKrnggOVpowKhn7YKUZDaV6jK/50buwiT9+ddy1oVGxqLHpMOcKwuGJZ7AJSUnR005R7l+64LMsC5vNBpvNhtbWVoTDYeqy6evroy6b8vJylJeXZx0jU1xkuSO59sbv92/pe0PcaLkcl0jF7HfseYIBcpOL8fv96OrqgkqlQmdnZ0KBopwEk4u1QOpJ6uvrcfDgQXoDykUw2S7qHo8Hd+7cgdVqxZkzZ6ipLwc5yOkiYxgG/zWa3j2mYoCZ2EJt0qpwY3qDvnd/UwklGAaiJRKMxMUyyUyS+8AAwJFqM16KFWuOrfnwUHtZAsEcqjLheK0F42t+zLoCWJK0aF50B3G8xoI5VxCeMI8SgzpW+5J4DF4AXMHtfxOtVovq6mpUV1dTl43D4cDi4iJGRkZgMpnoDtpms+24sN1LLrJcLYlMYTQaYTQaUV9fT2tvSBvpcDiMmzdvJrjTdro2ShaZTMjkZsuWEMgCXldXh0OHDm25mMWyYEg9ydTUFI4fP46ampqE9+W0YDIdZ3l5GX19fSkVDORomyy3BTObpiKeHIvouVRZdAkuseO1FiAWFykzaaBRsbg8vErf90d4LLiDlGDUbDxW4pO4w8ZWfXhPRz3+5Wq80NOgYfFgWxm+37MCb4jDM6PxmM3yZhivOxqP91VZdGmD/z+eZ/CWHX+B+LkSl01LSwsikQi1bgYGBsBxHLVu0gWk7zULZrey80jtTUlJCaxWKyYnJ9HU1ASn04nBwUFEo9GEZIHkvjckfVqubpbFRNEJJhNkKhcjCALGxsYwMzOTcgEnKIYFQ0Q0PR5P2noSOaX/dyIGQRAwPj6O6elpnDx5ElVVVSnH2Ususs2wkDJATiCt5FerEhfOgeV43xeTVtzJfi/WDZNlRAuia26TEoz0OFOOePOxhY0g2uwmKsUPAHdmNzEpUVr+/HOJWW7SNVxaN5OMIVfucvLJ9R1erxcOhyMhIE1caaR6/V6yYIoV++E4Dmq1OuPaG5vNBq1WK5uL7PHHH8dnPvMZLC0t4dixY3jsscfw4IMP7vi9K1eu4GUvexmOHz+O7u7unI+/LwgmE0IIh8Po6elBMBhM27wsm/GymdtOi7nX60VXVxf0ej06OjrSZgLJacFst6iT5ILNzU1cvHgx7U6p0C4yILsU5svTmceVpG2QAeCbt5bof3tDHDaDUdyKub3KTaLScdecG/Oura2MCZGUmzRw+CKYcvhRbdVRl9sffnsA0pYvoSQWvCWp1N8Mpnf1eqPyWBUMw8BiscBisdCANFnQSOfI0tJS8Dwva1ZaJtivQf5ckeyaS1V7Q7IGp6am8Fd/9VdYXV2F1WrF6Ohogss6Wzz11FP48Ic/jMcffxyXLl3CF7/4Rbzuda/D4OAgGhsb037P7Xbj3e9+N171qldhZSUzxfJ02PNSMcDOMZiNjQ1cvXqVFgTuxPyFFqiUYmVlBdeuXUNVVRXOnTu37QMtZwwm3Th+vx/Xr1+nwfztzHA5XGSAfGKXN5e33gPplmJpHCQZTn8Ef/SdQWrxHKwUfd235zYpmRADiIxv0atxuEq8r0ZXfbSwExD1yU7XW1FqjLtgNBILiqRNA8D8xlYCk56NtE+NXFCr1aisrMSRI0fQ2dlJFbn9fj+9P0dHR7G+vi6rLFMq3C1B/myOux2xqVQqlJeX48CBA7j//vvxuc99Du985zvhcrnwoQ99CHa7HW9961vxy1/+Mutjf/azn8V73/tePPLIIzhy5Agee+wxNDQ04Atf+MK233vf+96Hd77znejo6Mj6mMkoOsFksltL5yITBAEzMzN46aWX0NzcjFOnTmXE9nIKVKazhgRBwOjoKHp7e3HixAkcPHhwx3MtdAzG4XDg2rVrKC8v35HsyDh7yUW26t86TvIr0p+Y6H81l4vxB4su/qBfkyQAHKsRSXZyPe4Ke9Nxe8L4LBMnol+MrGNOkgxwqNKEJ959Ch0tJfS1sw2p+whF+ThpqVLcDk/cmE/5PblAdtCNjY2orKxEXV0dDhw4QO/XF154Ad3d3ZidnS2INlcxg/zFcpFlc9zm5ma8+93vhsvlwujoKC5fvoz77rsvp6zQ27dv4+GHH054/eGHH8bVq1fTfu8rX/kKJiYm8Od//udZHS8d9q2LLBqNYmBgAE6nM6MeKTuNlytSLeaRSAQ9PT3w+/3buqAyGSvXOUkXBmmzsiNHjqC+vj6jcXbDRUYWnJ0ewjlXYAuZEJAYChDv2QKIEi+zriDcftHyMWpVCfUrBO0VRtSX6Gn8hWWARy7W4LnRdThihtBmMEolY5JbHS9vhsAwDE7VWfH0gKhZ1lRmwMiKF65YQF+jYhCJWT0WvdgeIFUn5d5Fz9YXCwSikWW322G32yEIAk23dTgcmJychFarpYkCpaWlObtrpMe8lyyYXLLX/H5xo2Oz2XD+/HmcP38+6+MSazQ5tlpVVYXl5eWU3xkbG8Of/Mmf4IUXXsj7OhPsS4Lxer3o7u6mNSTZ5v+rVKqsdwTpkOxuI03LTCYTOjo6sspcKYSLjOd5DA4OYnV1NWsiLmQWGc/zVGOOuD9ZlqX/kvH1bXb2aVT6abzDFYhAxcQ1xJJxZ86N0/VWSjCtdiNKDGo0WkAJRhCA20kKAkT00h2MwhOMosUez9TiBAEtdiNcMT2yY9VmdC+I5OENpXf3BiM8ghEOek3h4wXJ8R6GYWAymWAymdDQ0EDjAw6HA+Pj47SYkCQLmEymrK2RYotd7jZylerX6XSyLPLJ1yddjI/jOLzzne/EX/zFX+DgwYN5H5eg6ASTaZoyWYRIWm1jY2POMiYqlQrB4NZ6h1xA3G2CIGB5eRn9/f1obm7OqF9KMuR2kYVCIXR1dYHneXR0dGQtj1MIFxmR/yekrNVqwXEceJ6n/8ixiYoDy7L40cBqyvG3gzQd+GxTCW5K3GJSfOvOEl52oJz+/WCbqEXVaBblYgj+a2At4XttFUb0xkhjdNUHnWQhmXb40Wo3UsFLqbWSjhAJvt+zjN86l58IaybYyV1F4gOkQFlq3UxNTeWkPFzMLLJiBfmz3QB7vd6cyFsKu90OlUq1xVpZXV1NmTHq8Xhw69YtdHV14YMf/CCAuBK0Wq3Gz372M7zyla/Meh5FJ5hMoFarEQwGMTw8jPn5+bRptZlC7iwyABgZGcH8/DxOnTqVswqqnAQTjUZx7do1lJaW4vjx4zk9XHK7yAixkL9VKhVVagDiVg25sclvwQmAJ7jz9ZJK9pOML4JzDVbcnN5ISC8GRHcYJwDPjzvoa83lYv+XpiTPpgCxA2Yw9v3T9VYMLHrACcAL4w40lcUJvG/Rk0Bay2mSDqSuM4Jvd+0OwWSbsZZcTEism6mpKQwMDFCRTqlUSqpj3ksWTC7HJQSTD7RaLc6ePYvLly/jzW9+M3398uXLeNOb3rTl81arFX19fQmvPf744/jlL3+Jb3/722hpaclpHnuCYDJJZV1fX4dOp0NHR0feP76cBEMsq9XVVVy8eDGv3HW5kg+cTicCgQAOHjyIlpaWnHdCcrnIgDi5bBdzkbrHCMlwHIfnR9a2fJZAKuPyQFsZFab8lSN2PBlLTWYBNJWlbhpWX6KHN8QlSO/zsXuxIkV36uYyA4ZXxJqXAxUm1MXiPDdn3AkWUygqQC3pMkZaCCQj1X0/vuZL8Un5kU9KNJFCIcrDwWAQDoeDSqVIlYnLy8updXMvBvlzicHka8EAwEc+8hG8613vwrlz59DR0YEvfelLmJ2dxfvf/34AwMc+9jEsLCzgiSeeAMuyOH78eML3Kysrodfrt7yeDfYEwWwHp9OJ6elp2pNeDjNXLoLZ3NzEnTt3AABnzpzJuzAqXwuGZALNzs5Co9HkLfctl4tMapkQ11cmxwbEa/Xl6wtpP+eXBO0tuvjt/LpjlZRgmssNNB4TiPBgEM8Oqy3RY9UTTiAYQgZeSaiEBcAj0e3WZjfidL0Vs64gphx+KqxJkNwvRpqMQJCqcJQTgDVvCBXmwvaOl7PQUq/XJ7QpdrvdcDqdmJ2dxeDgILVugsFggmzTbmG/xWDkkIl5+9vfDofDgU984hNYWlrC8ePH8fTTT6OpqQkAsLS0hNnZ2byPsx2KnqacDkTG/vbt26iqqoLBYJDNhyqHK2pxcRE3btxAQ0MDHbOY84pGo7hz5w5WVlby7t9CIJcFE41GsyIXKan5fD4MLKXf0ZPZNZToMBSr1q+x6qjGGABEOAGLm/GY26XWUuhjFfWBMJeQngwAEzELYnQj/tr9LSVgmURXV6vdiNceEcUOvSGOfo9gZNkLiz5OelJy0abKUZbgP24vbvu+HChUJT/LsigtLUVbWxsuXLiAS5cuoba2Fj6fD+vr61hYWMDAwACWlpbyanWRDfYTwcippPzoo49ienoaoVAIt2/fxkMPPUTf++pXv4pnn3027Xc//vGP51XFD+wRCybZRSaVsT9//jzC4TA2Nze3GSE75GPB8DyPkZERLCws4PTp06ioqMDk5OSuSbykgs/nw507d2AwGNDR0YFgMFgU0UwpSDDfaDRiYGAACwsLqKiogN1u36K9RPCffctw+iJ48qV5PHSgHGeqtNhcnEImZ3KusQQ/jzUGO1lrxq3peCrx3EYQoyvxxf+t99Vg2hnA/EaQVuOfb7JRQcubM25EonX4pcRw0qlZnG2MfwYQiaujNZ6VxwugYpYA0DW/ibYKE7rnt9673A6/67fuLOEDL8vN750pdksqRtqCYGBgACzLQqfTFaQFQSqQe7EYQf5ckgvull4wwB4hGClImi9pG6zVauFwOGStMM6VYEKhEJW07+zshNFopOPttkglwfr6Orq7u1FfX49Dhw6JPVNCoV2RnEkHEqDneR5Hjx5FS0sLHA4H1tfXMT4+Dp1OB7vdjoqKCpSWloJhGPzTc9N4/PlpOsaTNxfwJDI3sR9oL8f3ekVZi1cfrsC/xywAnYpBiBPQtyAu8madCi87UIbPPSt2stwMRsEyolVDyMPlj+Dxq4twSzbXfYsevO9SYwLBDC570dlaCpteDXfMBcdLfi9PiEspPcMyALfD5XH4o+AFAWwBCaBYYpdGoxFNTU1pWxBIYze5tg2XQpqZuNvIJfZztygpA3uMYBYXFzEwMLAlzVetVsvSlpggF4IhHTFLSkpw9uzZhBz13RSpJBAEAdPT0xgfH8fRo0dRVxfPOiqW7D+ZlzRTjGVZWltBtJecTifW1tYwMDCAQDiKp6a1uL6Yui4p07NY9cZdVxdby/Dxp8cAAIeqzehd8GAzFqt5WVspBC6KQCR+vV5xsDwhswwAvtUTTyxgADh8EZysSxQoHVz2oNqqS1AP2EzKdlv3bT0vFcuAT1VlmYTeBQ9O128VRZULe0FNWe4WBKlQbIIppous2NgTBCMIAgYHB7G0tETdTlLImfWVy3jElG9vb0dzc/OWh1JOCyaTeXEch4GBATgcDpw/fx4lJSVbxiFugXwWkGxjMNJMsXTxFpVKRRs1rXlC+OC/96CPxlgElGkZOHNwy//Ts9MAADXLYNEdpEWVbzpZjYk1H01ffse5WoBhseaJH+RwpZEqJttNGqz7IuAFQM0AUUGsyp92BjDvDsIaq8IHgB/3r+Lzz04n1Li8+VQVphwB6hartemw6E5MUU5OS06Hz/5iEk/8zumsf4tMsdfUlOVoQZAK5JnaLwSjWDAyo7+/H263m3ZSTAYhBLkeiEzHk7YQvu+++2C321N+bjf7uASDQXR1dQEAOjo6UmbkSFOD8/m9snGRZUIuUoytevG+b/RieTMErYpBiV6FVV80gVx0rNhVMhN4Y4Ri1KoS9LzaK0yosYndJgHgvqYyLG+GEkhh0hHAYqyKv6FET60O0pn5vgYrpp0B9C5sJohrkjGP15jRvyQKWh6qMsFu0lKC8YVzt7z7Ciwbs9dbJufSgiDdMUnR7m4j1xhMulYj+w17gmBIV8d0F4K8Tnor5AtpYV+6YwaDQXR3d4PjuLTERyCni2w7y2NjYwNdXV2w2+04evRo2rlLa0ny2bVl4iIj8yUxl0zI5fmxdXz0O4PUyghzAlZ98YW42qrDmieUMblIsRmM4sf98ar/8TUfltyxdsQQpfT7FhOD7ten3bRmRdqkDBCD9ucarPhezwq6Zje3yO3/719pR61Nh0efGgAg9oZ5TSyzjAHgDiTeF9IU6Z0Q5QU4fWGUmQojqV8sF1kux8y0BQGxbqTPazGLLHNJLvD5fIqLTE4YDIZtYyyEVOQiGHKzpTNfXS4Xuru7UV5ejmPHju14g8jlwpMSQ/IxFxYWMDg4iAMHDqCpqWnbh1Q6Tj7YyUUmJRZy3J0WjydvzuNTPx0DLwBWvRrNJRoMrvgRFeLfS1f1ngv+8r/G4vOFmP77Qqxq36JTia2KJfUq/ggPDQuQkEyNVYdj1aK7YnDZs4Ucam16zEkC+denN/DBl4l1BslskqoOZic89swUPvFrh7L7UoYoRlW9XIs9aUFQWVmZ0MRrbW0NY2Nj0Ov1lGxUKlXRZGKA7F1zCsHsMoh5K7e8S/LiKQgC5ubmMDIyktFCLh1PLhcZmZd0jqOjo1hYWNjWTSeF1EWW73y26+WSHMzfDlGex1/91xiektR3bAaj6F2OAmCgYhicrDNjfiOUtuo9PQSk7wyTiP/zs3H63w1lBtRY9fjFyHrCZ06WCbi9Lo4X4QW0VVkTMsXULEN7yfTMu7EiiedsBqMIc8IWSRoAKDFoaPGlTs0gFN35+vxyZL2gBFPsIL8cSG7iFY1G4XK54HQ6MTo6ilBIVLuem5tL2aK4UCBrgmLB7HEQvSq5CIZIlUjHk6oOnz17lkpgZAK5YjDJxBeJRNDd3Y1gMIiLFy9mHPgjD0+hlJCzjbd4glF89DsDeHFCbKalVTGoNjKY8/B0g88JArrm4zEHq47FZsY+stwWi8ElL8aSXGKd1cCvn2/H7R9NABBbJM9uBBOyzjpaSvBCTLK/e34TG4HETLGXZtw4Um2mQpd0lpJp7pSmTOAOcgVLV95rQX65oFaraSKJIAhYXFzE5OQkbVEsdwuCdCApytmer0IwMiNbRWU5ICWs5MB5LqrDcpCflBi8Xi/u3LlDZf+zeQgIgcpBMMnnlSyvv9O1m3cF8L5v9GLK4YeaZaBRAYGIgFlPnLhayw1Y8YQT5PQzJ5f8kJzRtRIxYGAtbpEEIjx+59+6E5QB7m8pxciqH6ueEHoWNrf0dbk66cChSuMWgiEFmAxALaBM8OTNBbzr/sx6+GSDu8WC2Q4Mw0Cr1UKn0+H06dMFaUGQDrnqnylZZEVAuq6WuYIQjNPpRHd3NyoqKrYNnO80llx1JwzDYG1tDaOjo7QlQa5BUTldZNJgPlkkdppX15wbH3qqj7qForyQ0BDMZlDDHYhi0hGPYZQaVNBp1LLGYeLY2ZU24QhgwjGX8Nq6N4xyowaO2Hk0lxvx8JEKfP3mPIIxNxfpDQMAt2bdeNXB8oQx9GqWapWRn0CrYhKIKx2eur141xBMMcQupXGfQrQgSIdcUpRJPCnTJoV7HfuGYOSuhWFZFouLi1hcXMShQ4fQ0NCQl7KsHHMjD/zw8DBOnDiRV6qiXBZMcpYYGXun3+o/+1bwpz8cQoQTYNOr0VCixeCKP2G37w5EaRzcoGHBcTxcAQ4IyHedk84o4S8VgEyP5JAkAixsBPGqQ+X4+s14OvShKjM2AhFMrvsRiAh46k5iHw61igGiQJlRDWesw2aZSYPlzZ3jTbMueXoXJaPYi/1eOKa0BQHHcXC73Vm3IEiHXAgGEElvu6zV/YQ9QTCZusjkIhiO4xCJRLC0tJR1l8dCzY3jOPT394PneZw8eTLvPHi5CEbaeZKMux0EQcDnnpnCF1+coa+5g1G4l2NuNQY4XmPBvDsIpy9Cd/OBCB9LFc7P6rLqVVuq6dMh3ae0KiBN80sAwKd+Oo5KizYhSWzFE6K1NAAwtJIY2yEtBfzh+DWJSoL82525AKBrdgP3NZakn1QOuBdcZEDmtSjSFgNA+hYEJH6zk3WTa5MzxYIpAuSSiwkEArTL48GDB/MmF0BcdPNRhSVzUqlU0Ol0WceAUkGuZmHZBPNDUQ5/+oNhPB3rPllq1KDGyGDEEaaWCy8k9p1vKNXDpFFheNWXVVwiHZLJxaxV0SLMTJHJx1c9idd7YSPRykhueEYglfSXWkVaFRDa5rj/+Nw0vvyu0ztPLAvcKy6yXGMhqVoQOBwOzMzMYHBwEBaLhVo3Fotly3nlctxIJIJQKKQE+XcbclgJDocD3d3dqK6uhlqtli03Pp8YjMvlQldXFyorK3H06FG8+OKLRRPOlEIQBOj1eqyvr+P69etUnLKkpCTlQ7PuDeP93+zB4JKX1nu4/BG4Ykr4KpbB6ToLJhwBbEgW1jmJ+8ekVaHGqsN4knx+PpCSi1YFRLjtbaRU6cXZpEETSMlFmuIstVSk89iOXACgW5JhJxf2eiX/XjomaUFANqShUIhaN3Nzc2AYJkGkk7QCz0WHDIBiwew28iEYqTDkkSNHUF9fjzt37sjmcst1MZ+bm8Pw8HBCDGg3ZWfSgcRb7HY7HnroIbhcLqyvr6Ovrw88z6O8vBwVFRX0QRpb9eL/+WYfFmMV87wA2LSgasQqBuB4AbclWVVt5XqwrApjkh4qvjAnK7kkIxPLREou8W6Z0kU4e7IhwX8S6JcmBGSKCC9g0eVDtc0g2wK92wRD4nn7kWCSIW1BwPM8FemUtiBQq9U0fpnp8f1+8f5XsshkRCHTlKPRKPr7++FyuRKEIeWM6WQ7llTj7MyZMzSjBZBX1ywXJWRS40LGUKlUCRXTHo8Ha2trmJmZwcDAAKbDJvxTdwihqACLTgWrXoUFdzhB6t6mV2MzxCHKCyLZCMCEI265WPQqHKo0oXfBk1FWVToYtWxCjCNfeFOaFenvVYtOBU+K7xDXH3GPsWmGIL9NOnz+uVl8/FfbxFnENiPp2k9ngmIQDJDZ8y4nco2FZAqWZWGz2WCz2RJaEMzMzMDv9+PFF1/MuAWBz+eTtblisbEnCAbYOWaQC8H4/X50dXVBrVajs7Mz4cLKSTDZZJGFw2HaUyaVxpmcNTW5KCFvF8yXqt22trbiK1em8di1aSp/4glx8ITEynwGYqviOVcQTkmbYRUDmHRxRWIGgCfI4dZs/g3lpOTCMIBNp8JGUkxGWoWfDplIukjTjgm8sXPfCVISks6HYRhgm2fg8sg6/upNh6mFKb1PWJal/zLFbhNMsWTzd9stR1oQ+Hw+RCIR1NbW0hYEw8PDMJvNaVsQeL1eWWtxio092zI5GdnWwaytreHatWsoKyvD+fPnt+wa5LZgMlnMPR4Prl27Bo1Gg/vvvz9lKmIxXGTSNORMdsRRnscn/2sMf/tLkVxqbXqcqNKBlbiPBABTjgBdPCvMWpQbNQjzSBCMtJsLJeSIBHIhHYqTySXVY0w+wgCoTDO/ZHIBACEHRQHpfHYivmBUQIgTFzDyT61WU2s1Go0iHA4jEonQ5IztUCwLZrcJJtcgvxzHValUtP3AuXPn8OCDD6KpqQnhcBgDAwN44YUX0Nvbi4WFBSwsLMhaZPn444+jpaUFer0eZ8+exQsvvJD2s9/97nfxmte8BhUVFbBarejo6MBPf/rTvOewbwgmU0IQBAETExPo7u7G4cOHceTIkZQ3l9wWzE4P88rKCq5fv466ujqcPn06bWX+bhMMsVwylbXwBKN479d68M1b8X7Ci+4g+lZC4MFAr2HR0VICmz7RxF/zhmnWlE7NorXcQF8vBJLPItn1pI9lmG63pAsAVrOcX50tnfsj/ww5APjcM5MA4u5LjUYDnU5HyUaqPE4IJxqNptTd2+14CJnDvZBYAKSugyEtCI4ePYpLly7hzJkzsFqtmJ+fx5kzZ/D+978fgiDg5z//OYLB3OufnnrqKXz4wx/Gn/7pn6KrqwsPPvggXve612F2djbl559//nm85jWvwdNPP43bt2/jFa94Bd7whjdQhZNcsWcIZqebLhMXWTQaRXd3N+bm5nDhwoWELo+pxtuNGIwgCBgfH0dvby9OnjyZ0KkzFXazGyVxs2SahjzvCuCdX7mNl2Y2AIi7+yZr4i0UjPC4NrUBd8x6OFZjwcHKREstFOUTqvebygzQ5LDmbPeVnZbzUOoGmhmPnw4L7nQKBPIsqlKxUClYloVGo0mwblQqFb2fpGQjtW7ulRjMXiEYKUgLgubmZtx///0YGhrCW97yFoTDYbznPe9BeXk5fu3Xfg2Li6mv+Xb47Gc/i/e+97145JFHcOTIETz22GNoaGjAF77whZSff+yxx/A//+f/xPnz53HgwAH89V//NQ4cOIAf/ehHWR9bij1DMDthJxeZz+fD9evXEY1G0dnZCZvNtu14ci3k241FCG9hYQEXL15EVVVVzmPJNScg7hIjMZdMZV9+459vYWLND72GBQNxdz+zKR5Do2JwX4MVBk3iLTWw5MHoqpgZU27SoKOlBBpV4rFmnAFEctjg52MTZPJdeWwOeRHmBLz2c9fw1z8ZxZUJJ8IpXHXEuiEaXDqdLsGVxnEcrdvKxJUmFzLdyBTquLuNbJMLysrK0N7ejiNHjmB2dhY3btzAy1/+8oQkoEwQDodx+/ZtPPzwwwmvP/zww7h69WrGc/d4PFmJ/qbCngny74TtrITV1VX09vaivr6eNi/LZ7xskSowTxIMNBoNOjo6oNVmFmsoNMEkB/Mz6fT3o75l/O8fDlNhyGCEh14FkBCHTs0iFOXRJUlDPlRphCfEJbQLdvgiuDa1AUAMbp9tsGLK4ceqNwNzIgdsl5WVSbAfACrNmoLNLzV2ToOe2wji6zcX8PWbCzBoVLjYUoKXHbDjoQNlqLZu7XAqDf4Ta2ZoaAgmkwksy24RL80nM207FKPIkhy3WP1gsv0diUwMwzA4fvw4jh8/nvVx19fXwXHclg1tVVUVlpeX03wrEX/3d38Hn8+Ht73tbVkfX4p9RTDJLjISb5mamsLx48ezklcpZJCfFHTW1NTg8OHDWd1khXSRZSuzLwgCPv/cNL7w/DQAoMamAyvwWNiMQJqcpVOzCEdF6X1CNiOr8XqWUqMaDaUG9C96aAA9ygu4MePO+zy3w3Ypv8nkomJE5YH1pOr7TMjFqldv6XQphUXLwBPO1B7KbgEORDg8M+rAM6NiE7VDVWY81F6Glx+042SdFaqknGiO49DT0wNBEHD+/Hn6HBARU6nrLN806GQUowYGKH6QPxvIKdWf/HxnmtTxzW9+Ex//+Mfxgx/8AJWVlXnNYc8QzE4nnuwii0Qi6Ovrg8fjwcWLF7OufC2EBcPzPObn5zEyMoLDhw+joaEh67HkbF4mHSdbcglGOHzsB0P46eAafW3JHQLZYevULNrsBoys+BIWV0EQaAovG8u6dfmjcPnFSnSWAU7UipbLdotyJjBrGXgzXri3BydgC7lkip3OI5lc8ldcA/Rqhio5SzGy4sXIihf/fGUWNoMal1pFsnmgrQwGFY+uri5otVqcOnWKLn5S60Z6n+SbBp2MYlow9xLB2O12qFSqLdbK6urqjm76p556Cu9973vxrW99C69+9avzmgewhwhmJ0gJgfRKMRqNWbmf0o0nx9wA0IZl+QhoylUHIyUYkoKcKbmse8P44FN96F0QXV7Ha8wIBgMYd8Wr2kNRHoPL8Sr8VrsRDm8oFtwXFz5eiEvyA3Hrpmch7kprKNFjbiO3bJlsySXdwi7Hgt9Qqk+QvdkOclBiMCrQ1s4MAEOKIlN3IIqnB1bx9MAqWAZosTI4X2fAb3S2p1xwpZL25N6RWjfEg5CrdVPMWMi9RDBarRZnz57F5cuX8eY3v5m+fvnyZbzpTW9K+71vfvObeM973oNvfvObeP3rX5/XHAj2HcEsLy+jr68PTU1NOfdKkY4nB8iD53a7c2pYJgXLsohE8vf5E4KR7kQzIZfRFS9+/8kerHnDdOHtX/LS98tNGhyrMePmjBtBiazKpETipcSgRrlRgwlHgJILAGhUQJQTrQXSCyVbcsmEDPRqFpwgbGkmtp1acb5zyJRc5AT5+QUA4Uic/I0aFv4kPTVeACbcAibcfvz74G1UWXR46EAZHjpQjostpTBpE5cCsiBLrRvpv1ysm2K5yPZLkB8QCSbfwDoAfOQjH8G73vUunDt3Dh0dHfjSl76E2dlZvP/97wcAfOxjH8PCwgKeeOIJACK5vPvd78Y//MM/4OLFi9T6MRgMOyZMbYc9QzA7LXzkBunr68OJEydQXV2d1/HkIpjNzU3cuXMHAHDfffflrYQsZwxGuhBkEsx/bsyBj35nAP6YTlZbhQEuTwASVRc4fBE8Py62C1azDM432jC3EcS8hCg2AlHavVHFAO0VRkw5AvBKulRG0vSt3wmZkEFyEeROEiwAoFMxCGUoU7NXssvULHC0xoKxVV/C7+iP8NS6YRmAZQRE+cRrv+IJ4Vt3lvCtO0vQqBhcaCrBQwfseNmBcjSWbb2HkxMFpMkimVo3SpB/Z8gVg3n7298Oh8OBT3ziE1haWsLx48fx9NNPo6mpCQCwtLSUUBPzxS9+EdFoFB/4wAfwgQ98gL7+O7/zO/jqV7+a8zz2DMFsh0gkgt7eXgDA2bNnZWF4OVxRS0tL6O/vR2trK8bGxvKeE5lXvgRDgnkrKytUS2y7GJUgCPj6zXn8n5+OQwBg1Kjgj3AYX5N0mjSq0VRqRO/iZkKg/tr0Bv1MS7kB5UYt7sy76Wc4AQkB/1qbDhAELG6GsyaXXJEJb2RCLjtJyMjhassGUR7oXYirLNeX6KFmgWlnkFo3vABoxV5nAFKrRUc4AVcmXbgy6cKnfjqGlnIjHjpQjofay3C2qQRaVeIiKXWlAfF6Kmn6u/Sz5N+9ZMEQAs7FgpFLSfnRRx/Fo48+mvK9ZNJ49tlnZTlmMvY8wXg8Hty5c4eyul6/NQ0zFxA/cy5yGYIgYGxsDLOzszh16hQqKysxOTlZdBVkMjeO49DQ0ACj0Yj19XXcunULarWaSu6XlZXRGz/C8fjUT8fw77fixVwcz0HDCojwDFRUej8Kl1+MnagY4FSdFRMOf4ILbMoRwFSsgNKkVeG+egt6F70JQXBp2nImlsVewk5Zzclv22LNz3brFKVWpFbFoFrHYzHIICixXoIRLmatiXptDLae15TDjymHH/92fQ4mrQqdraIr7aEDZagwb1UqSGfdSF1qgLhRJJb1bi74xcgiI+ecLcHcTd0sgT1EMKkWeWIhtLS0oK2tDb/4xS9kDcwT8z4bgolGo+jp6YHP58PFixcp8ckZnM+nLQF5sLVabYKcuMvlwtraGoaHhxEOh1FeXg6DtQx/8+I6rk+L6cLtFUYsbvghKrqIvwkniOm7LonMSyjK4858PFDfWKqHRsViQhKH8YU5vDi5ATLSsWoTAlEh4TP7iVwIVCzAZcj/7gw7a+aLxlI9LHo1Bpe9VCszzAmY9cfv64ZSPSKcgOXNEO09IwiASQOQTGwSF5PCF+ZweXgNl4fFbMJjNRY81C4Szok6K9ikZyeddRONRrG2tkYbBxYiDToVitkiAMieYLxe713TCwbYQwQjBc/zGBsbw9zcHLUQAPm6WgLxC5/N7sbn8+HOnTvQ6/Xo6OhIaJlaqPTiTEAeonSZYizL0s57hw4dgtfrRd/UEj76vUks+eILyviatHZFA5tBg2mHn5ILILpYorwAjhfogiTtGa9TMzhUZcbQspcG2QUA/ZKMszKTBmUGFcbXdycwLqfrKlNy2U1If38tCzSagbWwKoHg5hKuEYuWcgNGV32QlvnwHA+jmoE/mv43G1jyYGDJgy+8MIMyowYPtpfjoQPluNRWCqt+awth4hobHh5GKBTC6dOn6bOSypVG/lsuFEvBWZpYkw3kFLvcC9hzBBMOh9HT04NgMIiOjo6EH7sQqcUcx+3YWxsQq2N7enpQV1eXUi2gGCrIQKISMvn+dhYZwzAYdXH445+twuUXSeJUlRbjjhBcEhktlz9CO0+qWAbtdiPG1/00eA8APC/Q5lkMRLmYUFRIiAs0lOjhCUUTvuf0ReDMseYkF+wlQ6mQcRoGQJgHxjcBQHxOWu0GmLRq9C95qHUTivIYXokTfq1NB384io0AB7J/EwCU6wBnSPxvFcuAS/KlOf0R/KB3GT/oXQYL4GxTScy6saO9QqxGJxY/x3E4d+5cwrMm1cKTIw06FXK1JPJFpuKxUgiCIGsMZi9gzxAMwzA0I8tms6Gjo2OL4rCcBENu3p3GEwQBMzMzGBsbw9GjR9MKaBaifmUnZNLDJRk/7F3G//fDYURii0WYE/DSYpxZ2sp10IDDiCNKF0KOFzCymrgghaMc1n1RRGMZZwJEgiEuFtINUpqGzEBMFnD65bFC9yMKSXYaBhBYBhFOoEQ2uR5P1DBoWJyss2B0xQ9XIE7wi+4Q1Q/QqhjUlegx5QjAIdlw6CBAtY0iAQ/gpZkNvDSzgb/7xSTqSvR4oLUUtYwTx+waXDh7ZsvznBy7yTcNOuW8itiDJhdSU2IwBcLm5iZu3LiB1tZWtLa2pmT+XLtapsNOhMVxHAYGBuBwOBK6YaYbqxgy+ySGtNNOiRcEfO6ZKXzpxRkAYq3IqRoDehe9CHDx705IVhWLToXD5Rr0rQQTpGGkgXqjVoXGUj1GVnzwSQr9vCGOZl3p1CyMGhauQHTPk4uaZWA3a8CAgTsYhT/MSQoaBbAMwAkMXZD3inWkYYCwABrYEiDWLDkklmIgwuPGdFye52CFCXoti74FDz2PMCfQRA1A7OPjDUbgjwqxAwAsBFSbGCz7xeubyipb2AjiqTtLAACtKoyLEwMxvbRy1JXsrJcmtczzsW44jsvo+ZAbuWSQAfJmke0F7Bk1ZYvFggsXLqCtrS3tzZBt07GdsJ3VEQwGcfPmTfh8PnR0dGxLLjuNle2cMmkUlQ25BCIc/se3Bii5sIxYK3JjzocAJy6Wp+osOFCZ6Pv1hDi8tCiSC8sAx6v0qDWzkC4n/jCH4RUflWg8WGlEmVF0g/ASl4wrEO9guZsoM6pxtFpMxNCqGDzxO6fxwkc6YdSKD/+//PapBAXo1x+vwi8/fAm/+HAnzjSIBWZ/8IoWaFixodj9jeLD/6vNKvxDJ4ffPpqYVfXbF+rwmsPZqd/KAaJGbdapUG0RlS2k5FJh0W5Ruh5d86E3Ri4GDYuLLSUoNSTuOde8YZryrGYZVFm04MFg0Re/vmVaoNyQfikJcwKeH3fiL/9rFK/53DW88Qs38Xc/n8CtmQ1EU9zrqXrdaDSajHvdSFHMKv5sj0uaxSkEUwCwLLtjxaicLjIyXqqb0+1249q1azCZTLhw4UJGqdG7YcFI6wxI0dpO5LLmCeF3/62LZgExAKpNLF3oVYxIFz0LHozF3GB281ZZfV4A+leCWPTyABhUmNQ4aldDqrwvABhd9cMZi91UmLVotRsSSKUQO37p+H/1xkN47DePARDla178owfxwZe3AABa7CacayoFD5EYWQY411hC3wfEhZiAqBPofcs4Xy0ubkNrovX2yrOH0NnZidcdjxf8luiA32xj8PHXNOCh9nitFgPgi+84Qf82awv32HlDHJY9YXrcGqsOKhZY88TrjowaFk1JxZSBCI/rUxt0I9BuN+JErQUM4sKgUV5IIC2bQQ0WgCMMOAKxWAcjoMksQL3NKY6v+fCvV2fx7n/rQuenX8RHvj2AH/Qsw+lL3dyNZVmo1eqUvW526uS532RiAMgmdrkXsGcIJhPshotscXERN2/eREtLC06cOJHxTVJoCyaXHi7Dy1689Z9voW/RA72aRa1VCwHAopenC73drIUtade67hVl9SOcABUDnG20wW5K1Htb80UxuB4FJwAalsHBMg2ShsGaN4zJ9QC1bqx6eQKtWhWolfSRV7Xixx+4H4Do9vv1UzU0gaCxVFxEZ5yiy4csqjMxF1CNTQ+tmsW77q+nu/u+mE6aP8xh0S3Gj+qtGnzgYZEgSEbdgUozjEYj7jvcisZScQNSYtTRJJV6OOl8D1aa8OABO9orRAvxz3/tMH74/1yg75ca5Pldku8GAcDSZohmvhk0LMxaUUaG/CYMgCNVJpQkXbzxdT/6FkXrRq9mcaHJBqtelaBC7Q5EoYv9bgwjEicnMJjxMiBiCtUGoM6S/vy8YQ4/GVzFx34whAf+7gp+619v4/HnpjCw6AGfomFecq+bnTp5RqPRfUMwXq8oyaTEYAqEnbowFsKCIeMJgoCRkRHMz8/jvvvug91uz3osOSyYVOPkEsx/ZmQdf/TdQQQi4vkFozxWPfEdYpVFi3VvGCuS1zQsg2qbHnMucfEhNR+3Z+N++wqzBmadOsFPH+EFjDolqcxqscaCxG1YiEHgzTzqQqqtWixvhqFigJt/8jL81r/ehtMfAQPgu91ikWipUYPehU1MO0TLg0iezDjFvynBJBGOSmIJ3pjewOCSBz6/+B2rjsGDF+4DwzBorzBifM0PFYMEC8Bm0ACuILwRAceOHYMgCGhYXMc3xvsBAGXw4NatW7ivUo3xNeC50XVMrsWTJl59pBIfeFkLXv73YjMok5ZNiGdlCumTo1eLMQoi+wNgSwU/aTMwJMkoq7FqUWHRJbRWCEZ53JS0Vmgo1cOkVWF4JS5RIwhAJKagzQtxxYDlAEAy2rSsgAOlakxu8gik6TDXu7CJ3oVNfP65adhNGjwU63PT2VoGs27rcrVTkWcwGKQ9bwrZ6yYZueqQkR49dwv2FMHsBLVaLYsQJAEhmEgkgp6eHgQCgS2p0ZmiUBZMLj1c/u36HD5zeQICgGqrDnVWNbrmfZCqu69Jes0btSroVAxcgSglFwCwmzRw+qOIcAJt0LXmjWBNUjxRbhKLMHlBzCKLcgICSUZmrrTbWKLH7EYQJ+us+MNXtOC9X+9BQ6kBd2Y2MLYi7vb+7heT9PNLmyG848t3oI71QNHF/DTEYmkuN8b+9if87fRHEhbiv/zxEE6ZxUX3ULWVPvAXmksxvuYHyzAJfVY2YhlZ694wxtd8aK8woa2ugrYtqK6uRlWVFUc2RAHBXw6twiaxWl4Yd+Ljrz+EQ1VmjKx48eevP4xv3JxF90JcZDRTMBA3BqKUv3hOalbcUCx7wgl1PJvBKCUEdSwNeWkzjKXNcOx7YlO4GVcQy5vxxA5pTY2aZXCo0oCxVT8kUnMIRniUGTXUXSpmGAIDDvI7C2i0MNBpNBhzpn6m130RfLd7Cd/tXoKKAc41leBlB8rxsgN2NJcbtjwLyUWeGxsbGB8fR1NTU8F73SQjlxiM1+uFyWQqil5bobCvqLIQFozf78e1a9fAMEzO5ELGkisGQwonsyWXCMfjz340gk/HyAUAljdDuD3vA4+YOGWTDWVGDXghHqT1hzl4YwssA1HTigGw4onQYskoL0BP3CEQg+eAGEgm40Q4gR5XzTIoMahzDurf12DF60+K8Y32ChOmYqTg9Efwnq/3UBWAEoMaFWbRfVdl0aHEoKFunH++Mos//I9+TDoSLZipJIKZisVaaqw66NUMehZ9GA+K90FbRfx+sOrFc47wAq5MiC4wTzCasOA+3b8CANjwR6jo5txGCA0NDfiNV56FzaCGnwOWvGJ2mpoRq+uvDEzjUosYg3x+3IGLrfFEAZ0685w1AaDuKRUjxluiPLDgjpNLY4mO/mZSXTm9JAlAFdtQ3JhxU3JpLDWgo6U0ITYX5QUMLPtBDK4KsxaNpXoIACUXACg1qCnhixsABrMeUHLRscB9lWrY0rhROUG0Lj99eQKvf/wGXvuP1/FXPxnFi+MOhKJb14SNjQ10dXXRrFRp7AbILlEgF+TiIrvbUpSBPUYwOy2gcsdgIpEIpqenUV1djTNntubpZwM5LRhAlKTJhlzcgQj++5M9+E63mBp6tMaM09XahAsc5QW8NOOmD35TmQHHa8SAorTqfmEjSJeyCrMWlRYx3kHk+cXFI34dKsyaLT78KC9gIxDNMKgf/9SxKvEBO1hpxkTMjdRiN+Bbt0U32GYwCm1sgau16fDiHz1ASeBDr2jBM/+jI8G6uDy8hpXYAtlECCVGMC2xv0kwv96qwstrxHPsWhKtnjZ7nGCkLQmIdtvgklhUWhqLCf24fxWCIOD23Ab9bNfcJjYCEahZFg+2x4njwfZyXGgSSeVy/wIsXlHd9vnRNYwuiy4pBsCvHi4BAJyty27zwwlIkO0nv9vsRohasBadCocrTVAxiS40LSsW0Uox6wrg2pQLEU6ARsXgfIMZlfrEK7zmDVPCZQC02Y1QswxWvRGEYsynZhNdjAyAEA90rUZpP6EmC4OTVTqwaW77+Y0gnry5gP/+jV5c/JsX8IF/78VTtxewvBmEy+XCnTt30NbWRtWDpbEbvV4PnU4HtVqdUaJALsg1BqNYMEWEXGnKgiBgcnISGxsbsNvtOHjwYN4XVS4LhswjHA5nHMyfcfrxm/98CzemN0A+OrjkRfdyGDzEnfdrj9jpIhj/XoD2ejFqVLjYXAKjRpVACmveMFY9IiEZNCyO1ZgTdrDiZyIJlfrZotoipvpqWEAIi6RiFbwYXhID7k/dWqCFnqfrrXj0oWYAYntglmFozKWl3IiVzTA4XoBOzeK7//0cWu3xheypWwuIcBxmnYkus8l1cWyL4MdHfvUkSo0authKLZjR1bjL6rmxdSy5g+iPEcx9DTYYNCzmXAH0LXpwOxazsBnU4AQBz46uAwBefiBOMA8frcQrj4gdBqeCRvz26x6ASctiM8Tjl2MbAETqZX1iO+Sh1SBqbbGEghwSA5J1xgAxFX141UctwqZSA6x6NQJRUYcMEBeJVrsxIWMwwgl4ac6L1aD4Iims1KoYev8IACbW/TRYb9apUG5UIxgVaBwMEFW4bTHrkIn974xHQO9KSFSDZoHzNRrUWFIrboQ4Ac+MOvAXPx7FKx+7ht/8ly68uFmGNVhTpkEDIuHIkQadDrnGYO6mDDJgnxGMHC4yjuPQ29uL2dlZVFVVyWaSyiWzD4hZJFevXkVfXx+Wl5e3jTvdmtnAb/3rbaqke7TKhHpzIgFsBqP46dA6XLGg+PlGG47XJOba+yMcrk9vwB/hqDhlc4pU1oElL60Ut5vUlGwYxHfImYJ8nqTVvuJQBRxRkWzqrWrMbYiWx/xGvNL8fz3cjtXY7rul3Ah/mKMunJZyI7VOmsoMOFxtwQdeFk9B/vxz0/iT7w0hGiOgGpsOPM+jb2YVAHDhSBPqq+x45FIj/U59LEPMH+ZoLOe+eit4Afj2nUVqwZyss+IVB8XEkB/3r+D27AYA4HxTCQDg8pBIMM3l8d+01W7EQzGLpmtuE1GocKktnt5cYxYXqPUgC4tGgD/Co6VEfK3CIs7LqM59Y8Rga+bZjCtA1a91ahaVFi14iNYbIaHmEg3KdIlktbARxIuTLoRjmYcXmmyU3IkbzhuKu2IBoDLmppt0BOCOHdOsU+FEjSXBcgnzwEtLESzFNjr1Zhb31xvS3G8CFgMM/r3XhXd9tQsdn34Rf/zdAfywd5lKHyUjVRp0vtZNrr1g7iYdMmCPEUyhXWTBYBA3btygwXyDwSCb7zVf8iNBSEEQ0NHRgXPnzsFsNmNmZgbPPfccbt26hZmZGQQC8Z3f93uW8Htf6xbTRWP+7YFlH+a94hNdZlTjwbZS+h4g7ipfmnXTnXeVRYuH2su2fGZg2Yfp2C6zzKhBu924pZ5l3RdNcK2l2iFvh+TPn2mw0qy2dVjpTritVE3/e2N2GINz4o6+xW6kGWI2gxolRs2WAD6xVk7WiYvWfw2K9UBNZQYIPI/e3l7MbYjHPFJbCkBMyyb4yYBIPuNrPlod/9v31wMAvt21hP7FWFvpWgt+7YRojfy4b4USz9vO1AIArkw44QtF8ZIkG+vm9AbqSw04UGkCJwh4ftyB8lg6OAPgNbXi/TQe0OPlBysAAMGAuJGYc4hWVw7JZtCqxBiLgLhzUsPGU78JQkmZhyQGNb0RgTMk3g02gxodLaUwSuI3nADcnHFTmZoyY6yuihW16ggcvjD0sftOo2Jg0LDwhDj0LXmoQsDJWjPqkyr/5708bswHEOYEqBngXK0WLSWa2NkkriG+MIcf96/iT74/hEt/+yJ+619v4f++MI2hZU/KjNVURZ7bpUGnWz9yrYO52whmX2WR5bOIu1wudHV1obKyEkePHqU3UjicurgrW+RjwaQK5lutVlitVrS1tSEQCGBtbQ1ra2sYGxuDwWjETxa1+M5gXFTSogFUEOCPxmVMnP4oXphwifNjRMtldiOIJYnUy4onjBWPGLBWswxO1lkw7QgkBGid/kjC31KQXSQhi0zFHOtsOizE5hGXlBEfyDKjBv/47DQAoMSgwZ/+2lG852s9qLJo0dZYh9kXxwEA3sVxXFkTLbHmpPgK+Xs6ZnW84qAd7zxfjz/5/pA43yiH27dvI8wBRNS5PaZkMC1Jwf7y1Tn81rk6jMSy1g5WmvGqwxUoN2kSMvGO1Vhg1KpQYohnTlVbdbjUVobGMgNmnQE8N+agrjIA+OXIOt7T2YhXHLRjbNWHXwyvYSKmaC0AeOOlE/j3iQEsbATx7vvr8aOBdSwG1SgxMNgIRFGiY7ARyo7UGQCiERF3W0EQ61GkGV8HKkyYcQaomwwQLeG4bI543dyBKK5NuejYZxptCEd59C3G702nX6yrIjhSbYY3GMXcRhBcLC4T4QRY9WoEI2KNllGrgj/MoXcx7pYsM6pxuMqCO/Pxdt1RAbi1SK4DA7tBzGrrWgrCn8S+AsQGbb0LHnzumSmUmzR4xUFRvqajdWvbaGD7Tp5SkdnkzLRcCUZxkRURucZg5ufncevWLbS1teHYsWMJ6YxyZaXlGuSXVuani7cYDAY0Njbi7NmzuND5AL42EScXu168iOsBHv6o+F2tiklwxahZBrwA3JhxU3KpsepwvMaSsN+L8gLuzG3ShUanYuiuFRAzttRJUdcwJyRYIpkud2pVPCON6JV5QqJ1KiWz1x6toEHjA5VmlFZWwxkUj3Lp5AEsbMbiQ5FN9Pb2YmRxA0DcFUXiKy12I954shrnYtbJtDOIq8uAteEgAJHUSo2i9UAUDSw6NTYCETxxfY4SzOFqM7QqFm85XUPn2FBqgM2ggUbF4nXHKunrZxtLwDAMfuWo+NqP+pZxS2LBdM25se4N45WHRNfac2NOTKz76TXpXg7iYksJADFbzaBhsbQZwrmY2626RCTExMyr7a8AeZc0qZS6rVgGMGpZRDgBg8teSi7NZXo02kgGXXycEqOG3g9sTBHi9qybkkuZUYNXHy7fYhkNLXupS9egYXG81gyWETMSyfx4nke5SfweSb12+qO4OuVCMMKDgRj3OlypTzjn9YCAKzN++MPiZ45X6nCsOrUb3OGL4NtdS/iD/+hHx6dfwO8+0YUnrs/RmF4ykos8SaJAsnUTiURo3U028Hq9CsEUE9kSAs/zGBwcxMjICM6cOYOmpqaEiy63/H82Y+VSmb/mCeGRb/Tj+an47tAVAkhysF4lwKwRg57SQsiGEh1NQSVu66XNkCjhDvEBbi4z0HiKhmWgZsVxpN0oNwLRhErufEBcV2diC/6hKjN+HpOzAUAFEQ9VxbPJ2uxGTMZ2+OUmDdobauBhxEX27IE6GI1GTMdcZsHVWUxNTUkyxsTPhSUprV/u9eOZUdF6kwbzx2LB/IePigv/v12fx0DM5XWoSlwA3na2ln6+RULmxE0GACdqRevqtUdF99aVCRc4QUBbhSjDIgB4ZnQdx2stqDBraZbV2UYrAOAXw+t4BSUfB81AU8euE1Ea8ARJvUuqqEpqpOprwwtI2PWTkaadQcy6xftAq2JwpNoMDcvA4YvQ+8GkZbfE7Jz+CH4+7KAbhtN1VlxoslEyAsS4Xv+il8Zpaqw6lMUSAYgsjQCgqcxI3bgqVnyta86N4dUgAAY2gxqvPlROSYl8r381hIFl8R4wahhcbDSnTIWO8qLL8v/8bBy/+k838PDnruFTPx3D1QknwtHtEwWSJWwCgQB8Ph/UajV1pWUSu/H7/Xedi2xPEUwmMRhpRft2CIfDuHXrFpxOJzo6OlBevlWAUG6CyVZmnxw7E02xoWUPfvNfbqE/JvvS0WyDSSP6u4XYUhDk4hIdgIAyvfj6lDNIXQo6NZvwEFp0YtbYtDNA4ykRXqAPvJpl0FRm2GK55AMNG19giCvLrFPRPjKvOmRHNLYCHqoyU4uircKE8RjZENmViZiFcry+DFX1zYjlBeB0axWmlhzwhsSkhbBjHtPT0xhfFY9xqa0UUV7AEzfmYmPHd7ljsWO86WQ12itM8ISiNKZyJCacWVdigD32O0rdSMdrzXRhJoRxuMqMpjIDXYxf1l5OrZafD68hEg6j0RAXA/3Qy1sBiPL3F5pLwADoW/RQy2VgYRMGDUvJn1zyfMlflXSNBQBmzVaLdWjZS9s9lBg0MGtZeEI8jdmpWZEkk7MWuxc2cXPGDV4QW2q/8mA5qiTab4C48fGE4hZVQyzJYnLdT39Pi06NltLE77kDUfx8xEFJ6VSdBQ+0lSackz8i4PqslzZia7RpcLwqtXUzvxHE127M45Ene9D5ty/i0W/24lt3FmnKezKIdRONRtHX14fa2lrY7XaaKCC1btKRjeIiKzJIncpOpODxeHDt2jVoNBpcvHgxbaaY3C6yTGX2ie9W6rfdDr8cWcNvf+UODbgGozyuTbtBdAdb7UYcrBTPMa7GInYmJDBrAKNarIuQChZKF6VykwbV1q0FeDPOgCyWCyEp4mZpKNVT8rg66aKf+4NXNNNg/4FKE0ZjnzlYZaYE01ZhAscLmIoFklsrTNQdVmnR4nBbM8y1bQCAGqsGfu8mbg+M0RjVH12qQJvdSNORSU2MNxSlbsQDlWY8+rJmcc6x2g9CiEC85fPQkgfBmCTP8LKPkueNKdE6YhgGrz1SQb/30IFyvCb297VJF569ehNRRtxVa9QszjaVoK3CKBYxLnpp0oHYOoDB3EZoi+xL9ohfT3L3kYZiOjWDmtjC75VIuhysNCZsTgBRxSAoCdxbdCpEeeD27CbVbWsrN+BiS+Ji7wtz+OWog17nlnID7o9ZN2SjwwvAkjtE7xuTVgWjhsVGIIopV1zQ83SdZcu8ehY8eHHCBY4XYNCweM1hO1rtievArDuC/phMjooBTlQbE1zCBP4wh2fHHPjz/xzBKx67ijd/8SYe++UkuubcCU3Y/H4/bt++jaqqKhw8eDBBLy2TIs+7Mci/rwhGeoHSYWVlBdevX0ddXR1Onz69bfGkXMWRmY4ltVyykX350FP9CER4VFq0+JXDJTAmndLkuh9jqzE3gFaFC002aFRMwoPvjYD2YlczQJOVBZtUXOfwRbAckwkxxfq8EGhVTEJaaC4GjT5JLv5sYwm1DAgqLVo4fSIz1pXoEYrycPjCYCBaLVILZn4jgDDHi0KeNj1t+UyKI8lnG2waeDwemGvbAQBVZhUcizN4e72HLq4DC2JshBBepUULm0GDh49UoNoqpk6XxOIsgCgLQxZQf4THTwbFbLM7c/EYy/XpDbrjbZO0QjhQYUKr3YR2u2jVDHqNGHWJFycc5XFn1o1XHRIJ6PLQGh6OxXB+OrhK65w0sQtg0LAZOsWSEf8WuUtYADoVEIoKWJIoMpPFe3TVTzcndSV6nKm3UgkhgjDHb3HHTjgCuD7litUnMXjFwTK0JS32U44AbsSsGxXL4FyjDRVmLaK8QMf3hTlIaz+tejG7sHvBQ+dVadaio7mE/j6AeI9fHl6nhbIt5Qa8+nBFTOBU/BwnAH3LfmwGxXGsOhYHK1JvTEdWfPjSizP4b1+5g0//bEw8RiCA27dvo7KycktdnTR2Q0gnVRr04uLirnfeLDT2FMHstOCSRTnVQi4IAsbHx9Hb24sTJ06gvb09I5ebnGnKO/WlyFb25X//aBh/87NxugCsesL4yfAG/FHx4X2ovYxW4pPP+MMcbs646S7waHU8zZPsuKMCMLPJx6wUAU0WFtXmRNbyhbmEXu/JwfxsDRoVIwaUgXg6rEqyOB2IWWDHaiwYWo67o0ZjwfX6UgOMWhXGYwTA8QKe7luh77FMPKDfGlsYCFnY4MfZs2fhjIq78sM1JaLU/kP309/tR/2r+OZPr+DF/ikA8VgLyzA4USfGRFz+CDwxtxRJTybnQir778SEQWttevAC8J99ov7YjCRw/MyYAxsbGzhsEq2vZ+ajCER4MaMLwE+HVvFwzMJ5ftyBS61i+vTQspdeg3KzBtVWHQIRns41OZieDVQQXW2hpEdLQGJfGXLbLmwEcWd+E1FerHs5XmtBmVGNUFSg7lhAjJuR7zAQyeuZUTGZARCTMR4+Yqf9eQDx2t6addMsvRKDBidjrQM2golS/KRAk2XEe2zVG8a16Q1EeLE53MXmEhyuTnQ7TTkC+PnwGgIRHioG6Gwtxck6UhcmTnYzxFNXKQDU27QwpWiz8NKMG5teH27duoWKioodi7ZJVlpykef169fR1dUFh8OR9rv7EXuKYDKBWq3eUgsTjUbR3d2NhYUFXLx4EdXV1Wm+nYjdyCLLJZjvDkTwvm/04nvd4uLUXmFCZ70e0po6TgCeH3fSSvy6Ej1ec9i+pfhsUJKxU27SoDOpz4tYNc1j2Sv+pkY1YNPFb4syoybh86oc7xiy89epGRo7+M8YQdgMahysFBeBozUWDC2L53Sk2kJJwqBh8XtPdGEpZhH81U/G8I/PTQMQLZWOz7xIx2suM8YKKMWkgUvHW2Gz2RLcawCw6BMXa7H6nMFXh4HRmBVkDDkxMDCA1dVV6v6K8gKevDkPADRT6kJzCdQsg96FTQwsbuJOTCLmdcdEgvh+7zIEQcAL43H5/u/fmcedO3fw62cbY/MXj/namKVyeWgNh6pMaCozIBTl0bvgoQtwmVEDvZrF8mYYF5pLAABsbLdOyDq5sVgmSPcU6NjEnYQgiNJAqqR7sX/RQ+WDTFoV6kv04ASxkp+ETA9WGmkLBYJpRwA/G1qHP8xBxTJ4oL0Mp+oTi4A3AhHaOgAQLRCrXgVvmKcFmoIAtNpN1J1GMievT29gOHY/VZi1ePiwPUHWiBNE9yyJ/5UY1HjlwXLY9Goa2wSAeXeYBvulT89DbSXo7e6C3W7HoUOHss4cY1kWL730Et7xjnfgc5/7HD71qU9l9f29jn1HMMmk4Pf7cePGDUQiEXR0dGTVDa7QQf5cgvmzzgB+859v4fqUiz7E42s+XJ0PIiqI4oW/drySBj8JFjaCuDy8jjAnQKti8MqD5QkuLkDciV6N9XnRqBhcbC7Z4rv2RwG3RBbX6Y8LXgKps4+2AzlbIvz4QFs5orHdJQnavvNcHSWVYxKCsejV+HpsQR9d9eHG9AYdt7HMAEtsx89ArNEgO95/em4K/+e7NzDrFnfex+rF6niSHUY6d5Id6ok6KyotWsy5w+hziOd68Ugj1Go1RkdH0Tsb31V+9fosfKEotWDONpbQLLEvvTgLhy8CrYrF715shE7NYmLNjyuTLvRL6kJuz3tQ2XQAncfbaDo1ywAfeKgZZp0Kq54weuY3acrzF1+cpmrPFWYtXh2zboj/f2TZA4tOhc2gWHBL3J75pGUQkgrx4ig6FVCjF5fcNW+EWsOHq0w04YLAF+boRgAAXdBHVv2Yjal1lxrUePmBcmq1kfN5cdyJnnnxtyo3avCaw3ZYdGxC8vWUI0CtJDXLUHHNsTUfJdkykzohcQMQZY9+NryOjUAUDIBzjVYxEUDyQ20EovjlqIMS14FKE07XW8EgMUUbAN7YqsYp1TwsFktO5AIAL730Et761rfik5/8JN7//vffVTpkwB4jmEx+XCkpOJ1OXLt2DaWlpTh37hy0Wu0O304/Vr4g/lRCMtLiSfL+TueXLPvSXK5HizXxEvkjPP6zf5XWhtxXb8XLD5QlPCRhTsAvRx3UxXWoyoRLraUJcZMIJ+D69AZ1f5i0DIya2ILNiIWQZEwVgJSqHBkg2ZOmjaWaEl87AByvtVJF40OV8WD9X/9kjP4WjaV66jZ6oK0MP/ngRdTEdLn+4W3H8eV3naLH2AhE8fXBILwRcZFtsRshCAJNFqAEE3O/Ha2x4OOvPwQANJHiTGs1Dh06hEOnzsMdFhMDKo1iT5tPfecaumOWyok6C955XqzsfyZWRHmyzoJys5bO91+vzEAA0FKqRYtFgAAGd2IZ2WWx2hubQYNqm57KzTw9sEoJhhR+sgBGVn1UfubapAtHq83ghLhLjzSGM2lVW377TEAuc0CygGtVDEIcsBSM64yZYkbA8IqPWoalRg0ebCuFWadKCH67A1Ha1I6B2H/HFYji2bF4lt/5RpuYMSe5zxz+CC4Pr8MT2/AcqzHjvnrRXUlchVFewKonTO9Pq14NrYrBqidCi1ZVLIMLTSUJLkQBwK3ZTTERIJbV9itHK7YkAoyt+tA9vymm80vm9rvnq/DauijUajXW19dx5coVDA0NYW1tLeM1paurC7/+67+O//2//zc+9KEP3XXkAuwxgskEJBVwdnYWt2/fxsGDB2llfi5jSUkh33kBW5seSSuBt8MPepbxe1/rxkYgQlVsJ9aDmNqMpWbq1XjNocQdHwB0zW/i2TEnOEHcKb7xRNUWq2RkxYcrky6aHnqptZSSCSEdX1iAP0KarwEL7hDdpXKIx2+yQfJcrXo1XYStsUVIxTAAI1by1JXo8cUrswnxHfLI/fNvn0ZZ7LwOV5kR4XgatD1SbYE+pgJg0wL//bQZllitgwDg/z4/jUV3EJvBKFQMQxcRYsEcqDDh5QfteNWheJO5WpsY2B+OkVCL3YiPPHwEAPCzWR6eEA81I8Ax3gOdZwEH7Hq6ez7bWAIAtBiTNGxrN4Xx5jMNAIAf9i2D4wUqdePyR7CyGcLrj4t1ND8ZWEVjqZ7WfhyrMeNSrA3zojtIe62cjMWHiB7bgjsIlomnTme7MSA/PamoifJi7C15GF90q/acyx/BCxMuGms7UGlES7kBAkSSIeM3lxmohURqYl6adePm9AYEAbDp1fjVoxWoMifePwNLXnTNi5ajVsXg/uYSWPUqBKM8vT83g1EalwFAye7mzAatx6kv0eFSa2lCIoAvzOEng2v0nmqzG/HaIxUJEjjE1ffejjp0WpyorKzEAw88gJe//OU4cuQIGIbB8PAwnn32WXR1dWFubi5B2kmKvr4+vPGNb8Qf/dEf4aMf/ehdSS7APiQYlmUxOzuL8fFxnDt3Dg0NDTmPlUlWWjbzImNlE8znBQH/8MtJfOwHQ3TXZ9KI0i90noxYyX15JLbjY4COFhuOJgUvNwJR/LBvBQ5fBAwjCg6SYj8CX5jDlUkXJRONiqExFq1K7NpInjujhk3QKMsWZKGpiWVhCUI8APzOC3UAgINVJozGUkXdgQj+IybLbzOo8bdvOQoBYt1DfYkeIzHX2cEqM6YdfkR5AWadCrU2HXpmROJqKdPhD99wDo9caqLz+Ocrs/jgU30AgKZyA5WkSbZoXnU4TjBP3BBdc9L6l189XomGUgO8sWLEo7VWnDh2VOwlZI/LxjQaxayg880lqC/RUeL59YsH8dbzTVCzDAaXvPhO1yIcvgi15P6zfwWdbaUoN4nk8U/Pz1A3okbF4g0nxNji0/0reMNJkYgW3EEYtSrMbwTptSZ6Zjo1m9PGQB2rUxIQ34CQYUoMajFwj0QtuUOVRlh0iffK2KqfWl8qNk7sEw4/tZAqzFqcqktUlHAHo3h6cA0rXvH+OVZjwasP26GVBADDnIAb0xu0yNRu0tJU/TVJUoJOzVDriWVE0pzfCOHKpAsRXhDjPm2lOFaT+CxNrPvx06E1+GOqAQS/d7EOF41rKCkpwdGj4rVXqVSw2+04fPgwHnjgAdx///0oLS3FysoKrly5gqtXr2JsbAy3b99GKBTC4OAg3vCGN+CDH/wg/t//9/+9a8kF2GMEs9MPHQqF4PP54Pf70dHRgdLS0ryOJyWFfEHmHgqFMg7mByIcPvqdAXzxxRkAouSImgFWfRxiwrEwalgcqbZQ81zFMBAE4NqUG4OxBbfaqsOrD5dT4UBA3G3dnInLdpQaNTjfaKOLmV7NgoWY1UNiLGFOwPiaP96ILMLTBS7n3wXx9GRSQFdt1VF5/7ONNvwoFpz3hji6K37nuToatzlSbYYAUMn+Q1XmeG1MpRkOhwPXhsTf8HRzJRiGoUoBrzlSAaNWhZEYiRGFgDVvCOteMf35QCzBYFYiIf9/X5jG1LqfVvAfq7FAzbJ434Nx4jpaY4HdbseRI0fwjledo6/PLq/i+eefx62XXsIBi3ieLANcOlSDUqOWusG+FiOx0zG3z3/2LUPNsvjVmBXzjVj8CQC65zdxuNoMg0aFOVcQR6pFMrky4cQrY+MRiRMSi8r12km/Ru6FUoMaZq1YgzKx7ocAcUNCVAxGVv3UlXWo0oTzDWaomDgxcbyA6XU/TRIxalTQsAxWPGH0LIgBfDXL4MG2UqoiTTCw5MHPh9cR5ngxvnioHIerxE0BGX/dF6bimoCYnaZXs3D4otR6+v/ZO8/AOMpr7/9mey/qvVrNki1LcrfBYDC4gG06oRNCCCGk3ZDkJiS5N7kpJDchEG5IAoRAgADGheaObWzj3mVZsi3bsnrv2r4774fZGe1KMsWEYN5wviRYu7OzszPPec45/yIIRNlNqIXw3OdUD1VhsEySVcfC8fGjFAEA7pyWykxzB3a7neLi4jGfb0EQsFgsZGVlMXnyZObMmUNubi5er5e7776b9PR0rr76aqZOncoDDzzw/3VygQsswbxf9Pf3s3PnTtRqNenp6RiNxg9+0weEnAT+GTL7oihiMpnYs2ePgj56P+XnjkEvdz13kHXHhuVR2vvdys1s1Kqx6tW4/CFJ0kWUFusJKRaFQS7fmq39XjbWdOEJhFCrYHauk1R79IC/x+Vnb/0wMSwkHxCp/VYcoUtmM6gV1JKKjybDrx/x2vwYjSJbIx/nonExiibXztPdSltiSoaDlHACmJBqi4IrN/Z4JKKhWiA7zqhog6WY4fDhw/QRNioLLzwyvHlhcQIv3l2uJLmDDX3UdbmUaigr1qR8VxlckBNnwh8U+e+3jyvD+ZIUKQlcPSFR+R5DEZheGc0HcKjfzMyZMwkGg2hCYba9CFv3H6O7u5slE6XZivy9vzQrA61a4HjbEMfbBrk6LDfjCtsOy/ppG6o7lLnMztM9lKfbCYlwOMzhGYg4H/k7fVwFBqNW4kv1uANK5SaHLyxJJH+CvHk53j7E3oZBgqJURc3IshFvVhNiGCTi8geJNQ+3svRqCbK+7VQPLeHKJTvWKLWpIiDMvqDIpuNd1LQN85Xm5sdi1Kqi+Dh1Xe4ozlCCRUcwJP1O8oYq3WmgKCkaoNA64GP1sY4oaDbAHVNTmG3pwGaznTO5jBVarZbExERKSkp47bXXFIfN1tZWkpOTmT59OlVVVR/qWJ/FuOASzFg/XEtLC7t37yY9PZ2YmJh/qr3pP0NmX26LTZ8+nbKyMgwGA7W1tbz77rscPHiQpqamKNXm422D3PjUfiqbBzBoVczMdmDUSBwEuevg9QeVgThIrQmZVNYZvvkTbXpKw7tfkHbJwRBsP9VDU98wNFne7YFUyWhV0oMqP48DngBVLcMw0H5PUEEthfjwMvwqQdIvA5TWWn2/vIMflq4pSjApg+FTnbK8iMCj149XPFdKUmwcCy/uRclWjrUOa4FpVCol+VgCfZSWllLXK12T/AQLwZCowJsLEi0UJFqUymXQG+TO5w4qCsCRHAn5mA/OycagUbHnbC+t/ZIXjSwRExJFJUlvP9WtQJj3ne0FpJy9u66XNTuPoNFo6FbZleOvrR2ksrKSUFMVJk1YMNKo4aJxsVySJ1UhKw+1kJ8wDLedlu3gujJJ9+z1I61cXya1ydYea2dWrlTBR1o2Tws7ZBoUMIWonFfk/35QqAVpYXb7Q2NynpKsWpLCbH/5z6GQSE6cMWru4w2E2FnXT8eQdJ1izVryYqWWaevA8CLuNAjEGqOXozNdbqlNFYYwX5IXw7SwdI4c7QM+Np3oUlpuJSlWBfAg/5s/JOINhKIUAVRIGmvVrdJ9olNL1dNI6RqA26akcLGtC6vV+pGSS2TU1dWxZMkSLr74YrZt28a+fftoamrivvvuIyUl5YMP8BmNCy7BRIYoipw4cYKqqipKS0vJzc1Fq9X+05Bf8PESzMhhvlqtxuFwkJeXx6xZs5g+fToOh4Ompia2bt3K3r17WfZeNbf+dT9tA9JQ1uMPsfNML7IhZEaMkXSngRDRBDeLYdjcSx9ub7X2ezkcHnqqBYGKdJsyWJd3k11DfmW3BzDkDSgtkESrToFggjRclQEGghCt0vt+/Bf5/fJCZNFrlPaM/L0WF8fTOiT1s1/deVJ5r7xITUy1URtuvSTb9diNGqWimBCZbJKsEselUdq1z5tciFdjoc8dQKMSGBdvpqHHjScgMfzTnUZ8gZCSuLJjjXQM+vjHviZAAgxI18lH+4DUMpudFxPVCsuMNWLWS7vtYy3SzlwlSFXhsgPSzGhf2GCsNEzY21gfJL94IoebhuHJ2xr8TJ4+iymTy3GG5wLqkJ8D+/czO1W61q8faeX1I63Kbryhx8PlRXEYtWrqu934AiHyE8x4AyGe2zXcQlscrnpq2oaINevodvnJiTMREqWWpIgkSCkiacG93+9o0AgERRS9sci/58QZMWhVtA74FaO4RKuOggQzInC6061cn5nZDiUxy9E15OdU9zCEOcmqle7loRBdbumeMWoEpmfaoyybgyGRLSe72V3Xi4g0c7m6JIHkMBhDjqPNA4rzqFYtUJZmw6BR0ecZFmr1BoJRMH+9RsAXlKqntgj/G4AvVCRzib0Ls9lMSUnJeYGJmpqaWLRoEfPnz+fxxx9XjpGUlMTdd9/9sVv9F3JcsAkmEAhw8OBBWltbmT59OgkJUmvgnwkt/jjHG8vDZWSYzWays7OZOnUqs2bNYkeXgf96pxWXP0SsAeak6wnbcShR3+1WEEE6tUB+glkaTPZ4lNLeqFWRYBt+sEw6NUFRZG99vzJYtxvUynAdIM1hQKOSHiT589oGfAoEE6Thqow+EkUUUUAYbm1oR7RcZGXbyBipqguQFW8Nn7uamj7ptku3qsgyhiHZlhC7aiW5lQkpNmo7hvAEJHZ7ZqxRmYUUJZrZuvcw/V6JhV2WnaBUHrnxZnQalYL8ykswo1YJ1Ib5ETaDhufuLCMr1qiADdLDxD95mJ8Za8Ss03D3zIxhscaIL3gonNhkYMDT79XT0udWILEXx4W11Zr9vHOii0BIVDYNA94Aa4+1ozGa6Qwvpl1eAcwxZBtcOHQife4Aj70j+d2oBGnBbOrxKCrNrxxoUQb8kYiplj4PqQ4DfZ4Ak9Klqtblk7J7W783jCwLRfE5RoaIVLlESgzJkWDRKQnEM4Jn0zbgU+ZjIM0NQyLsONOrbBKSbXrmFcVi1aujKqK2AT/GsKCmSpCSizsgsutsn3IvFicapcol4tbrHPLx5tF2RTduYoqNS/Nj0agEBe3lD4ocbOzHF755HUYtKQ49gRCcjaj6kqy6MSuXmyuSuTymB7PZzIQJE84rubS0tLBw4UIuueQS/vjHP57XMT7LccF9W0EQcLlc7Nq1i2AwyIwZM6IURj/tBBPJzP8osi+PvFPPn/d0KmtVlwfebfDiDUoPalmSjpwYQ/j1w0P3pl6P8p5Eqw6jRjKbkpOQSoAU2zBnxaRToxYk74xIslvHoE/ZweXGmxQ+AUj973N9A6dxeNgpLU6jmd3y3wCMGpXililreOXEmdh8UiIruvxBBZn0nfnjaQ9KC3WuHbbXSNVAis7NzuPS/y9JsREMhZQE09vWwKHmsKZUnBmDVh3B/JfuEwX5FbaFlhNOUZKFOIueP9w4QTn/v+2qxxcIjZq16NQqRWKnrttNVfjvcsU4f3wCSTY9HYM+ngibo6Wa4ZKCRCal2fAHRV7cI1VJF42LUZwtX9rbxJbjnXgDIaWNuKMVJldUcNNUqWrqdocwqKEkvLF97r1T3FAmJZX1x9p5L2wiB/C1S7JRCwJ76/sU3s3xtkEcRg2t/T4FIOHQST/USJ2wkTGyGyon2fZB36h5jggUJZmx6KKH8sFQKGpzA5JK8obqLmVOVJJsJS/ehAgM+eW5ICRYh60l5A5xVZtbqlxESXL/yqJYRZxUjiPN/WwOJ3StWmqnZYdRa/It2+v20xfhNZRk0yMAZ3u8oyqX6yclMi+mB6PReN7Jpa2tjauuuoqpU6fy1FNP/X+nM/Zh4oJLMJ2dnezcuZPY2FgqKirQaqM5HR/XNnlkfJQEcz6yL/0eP/f/4wivhlsp5ek2LskyoRaGn2QRONjq43S3tKuKMaiYnGaK4jOA9ICIwjCkOMmmIyRCbYRfuk6N0s7RqATy4qWeeCSi6FSHS+ETaFSg1w4zpeNN0cmmxz38QMqviSSsyQ+v7F3vDn+O7BsC0mImL8zZMUbFDjc33sTp8JB46ayJNLil87Yb1CwPX68jDT2U/nyrIi/z+AEPf6mUFoOOQS8/XX2c7bVS8pKRVXKCGR/+b1kqRG6H9Ya/k4DkcPjwmzUKM1+G+oqiGDXb+NmaEwRDIQ6GxSwrMhx85aIsANZUSSi48jSJ0X33jIyoz52dG8t1ZSkYNCqqWwcV3bKLwryW1w624A+GuL48Vfm8RROSuGu2JNu/rqab+qP7GOdQExRh15keJUnvON2tKAl0DHhxmrQ09niYEdYva+l1ISAqFsfyXOJcYzX5uDaDWmkDyqAGeYNi1asVWG916xCDvmAYgGIlxa6XSJnhzY1Vr+aygjjiLdEVwtGWAUUiR6MSKEgwo0KqLOQKyWbQRrVwQZLcX1fdpfj8FMQbWVSSENVO8weldppM3o0xa5kZ5r0MRQAVOge8OEzRgBmA68uSWJDQj8FgYOLEieeVXDo7O7n66qspKSnhb3/72/uK7v7/HBdcgmloaKCwsJCioqIxf9jzdbU8V3zYBHM+zPyGHjc3P7OfHad7lBv4QEM/W+pcBEUBq17N9WVJo2Rfuj0hDjS6lIW4ONGA3aiOEhL0BUUCEatEsk2PTi3Q6w4qi3EgJNLQM0yYLEu3RYj6EX6NNNSXo8Mljmp56TVCBCpp2HFSnvNkxhiUxVj+t8UTk9h+StLfOhleSAwaFffMkhbfomRLlAz/oaZ+BU762O4+ZE+1SMsBAZR2CkjkvZf3NStQ7P31vZzpHOJYi8zQH7uikf+7NKwG/FZlG3vCMjTF4dfU97jpdUuLq0mr4khTP8/sqKcjvJMvSbGydFISSVat0lK6bGIGgiAwtyCOZLs091CrBKZmOXCYtEpr62C4zfbl2ZnEmnV0DvrYWNOpCGnKcUVpBmkOA64AdNtyuShnuOpckCk9G1tOdDEvzN9Ze6yD68okcufBhn70aoFeT4jRNMnhCkYWcLSF520hUSLEyvdEJN/FpFVj1qkZ8AYVWK/8GhFJn60lwgbboFEx4A3yzvFOBTpdkWHnkrzYKNOxQEjkVKdL0VQz69QYtSq6XX6lhSvPdEYy7Y93uHn7aDtDviBqFVxWEMv0EUCA7iE/O8K8F5BIlCk2HQERRRFbPpdrJiayMKEfg15PaWnpeSWXnp4elixZwrhx43jxxRdHbZL/neKCSzBlZWWkpqae8+//7BbZR5HZj/Rw+aDYXy/JvtR1uVELMDfPSVFM9PsGvEFeO9iqLM7l6XYuyYuRPOrlzwaOtXmUxddpVJMbJ80NOiNAAH3uYbtZi15NUZIZQRjWAANp0ZFF/ZJtegoiJOTH2cGmkx5Lq17NuLCOk+zPIaPK5MNlx5oUNNVZufIyaZSFq6qlX2n1ybvL+cUJip7YzOwYdoY9YLoGfTzwcqVyLoYIVc//WZDFrLB26VWFNv5yhRWrVjrurRNtLCyKUV67vrqDq/+4h163RF7MSzATCIWUGU1JuDqR22EXjYvlB/PzAKlSFIThJCRXXEVJVr5+qVRJ/HmbxLUpTrZi0Krpam9jZtxwG1JOaGqVQEmylAw0KkFpLd0alpQJiRJEtjjZyo3lUkJ4YXcDL+4dHtqvq+7A7Qty61TpPa8cbOdg+/B9WpqVSFmiFhFYufMYExMkafvOAYl42drvVRB9KmH4NygIIwrtRtksLYQ1nFBiwj4QipGZiMJ3UQlSe9PrD45SaIi1aCnPsEfxXkKiVDlYR/ir7K/vY8vJLkKidNyL82JIsulHyfLLZFGQ2nryTEeGdqfa9SwcHx/F2g+G4J3jXewKAwGcRg0LixNItEa36051uuhyDVexclxTmsjVyQPotNrzrlz6+vpYsmQJKSkpvPLKKx9Zvur/t7jgEsyHkdj/Z7fI3g/2LPs1fNiWGMAbR1q5+/lD9Lj8CEjtiHdO9lDdLX1OZoyRWypSFIaxHAca+thyspuQKC3yC8bHK/Bk+VHocQdpCMuLCEiQX6NGhcsfUhb0QW9QUbFVCTAnL3aU/0ZLvzdqMFvbB/0+6f0D3qDSvgiJw20wWQlXr1HR0DNaAuPqiUn4gpKQpQz/LEoyKxIvF+fF8F64qul2+VhxUGoVdYb9XgDmFcXxm2uLAUix6XAMnKE7KFV4swpTSR5XzIBfQC3A/CwtGYJ0vHiTiukZFiUxh0Ii/9jbxIn2Qdz+EGadWjELiyRP3jw5VYH7CkB7GN13pElKMBPTbNwyNZX8BLPSXirPsNPQ0EB1dTUlucNos7cq25X/3xf2FfEGQrx9VGqh5SdalJmG06RDEARunpKKRiVwsLGfN45I6tnJNj2D3iCrDrdy7aRkTDo1pzpdHGrsV0AWK2sG+Nq88QDsahNYmCcljtePtCmbAY1KSmQhEaVyrW0fIt4iocwyw2AMlzeATiMoashy6NQCKqQKxqpXE2+Vdv0ykGRcvAmnSUPnoJ8D9X0ERWkGOC3LgV4j0NznVaqy3DgTl+bHRCHYfEGRrSe7Fc8cp0mrtDFlDTqAGKNmlHBrU5+X1cc66PMEEARJn+7S/Nio2VKPO8DqqnYFsZkXb2JGtj0stCrd1HJCXDIxgauTpORSWlp6XvOSgYEBrrnmGmJiYli+fDl6vf6D3/T/eVxwCeaD4l815B85b/kwSsghUeTxzaf5/qpqAiFJ1XhOrp3YEffZ2W43L+1vps8dQKsWWDwhQZFel2PAG2TNsQ6F8V6SbFW8X3xhhVsRSWlZnnskWrSKfIwvMDw4ffdkl+K/UZxsZWb2MCwyzSySECa8CQLkxBqVPvz4JIuy882NNdLYKyUVbyCk7DZlFnqm08BLe5uUz5TjKxdl09DjQadWEQoNt9dWHGpVWnf3zkonPoziuakiVUkAaXoveYVFnOqW2iulaTZl4S9IslAxaSJijNRym5Cg5+5cD1PihxeOX284xbeWVSnfWyUIDHoDSm++OFzRyFYBIRG+uewobn9QmbVMSrOhUal4eEG+8p1Edz+1tbWUl5dT0zN87zy7o4Fet58hX0DxhQF4ans9wZDIgCegLLgn2gbpc/uJt+gV/TF/UKQoycIXZ0ryRy/sacSsV7OoJEE51n0XZWLUSrOckCgyKc2GLyjS4DOFNyPSj2fUSNVmlkm63jvP9DI5w05QlCoCjUrgbLcbm0FDUBy+X0BCKWrVEuIw1qIjzqKlzxOkIzwIl8EJtR0uJdnI4fIF2V3Xq2x29BrJEO1Up4vNJ7rxhyRQyfzx8cq9I39yj8uvqBGAxPNSC9Dc71OEWw1aFRePc0ZJ7ouixEnafKKLoAhWg5qlpYkUjFBTPtnhYueZPuX+lJ/mxRMSWJoyhFajOe/kMjQ0xPXXX4/RaGTlypUYDIYPftO/QVxwCeaDFvF/xQzmfIb5Hn+Qb71WxZ/CbRRd+AHdcqqPrnAXpTTNyvzx8VFoHH9Q5I3KdmUGkBVr4vqy5Cj2MkhDUVkaxqxTc1GuE4NGhV8cPlbboF9huOvUAlcWxY2CX1a1DLDjzDAKqXFIoD3sIJlg0dHQ4yEkSrvfY62DCsjgVJc7gucindui4njlnM5GwKhle+CCRLOC4HKatDy04pjyuTLKaEKKlRvKU2kfkGYbpak2dpyQdvJzStLpDpnwBUM4jFoynEYqm+RhvC38fcKD9PHpzJ49m5BB+veZyWqM6uFBvdxJOdIk9fTTHAalDSMf0xyWlPnRGzXKdSxLl4iLkdLv60/2UV4xGYfDwa7wtUyx6xnwBvjre/XsOtNDICSS5jBg1as50+ViQ00Hm090KhsPTyCkcHFumzbcEl5QnMDSSclY9RrOdrt5p6YzKmFfnBfLNWERzaffq+erF2cB8I99TcpmRAAeuESyi97bFmJqslQ11Xf0YderaOjxKPdXf8Tcx6BVYTdqcPtD2Awa4i06OgZ9dA5Gs9r9gRAVGXb0GpXym6uAOeNiIgip0msDwRDjky3R5MugyNpjHRwKtyETLDrmFUrCkpEt3c4BLzERrTKzTo3HH2JrbY/yXYsTLcwNw5PlGPAEWXW4jePhKnxcvImFxfGYowhA0qzxslwLS5IH0KjVTJo06bySi9vt5sYbbwTgjTfe+P/O9vjjxAWXYD4oPukK5nyG+R2DXu587iAbqiXZF71GoDBOq7QD5Hv/cOMAa491EAiJ2A0abp2SqviByFHX5eK1gy24fEE0KsnLfeRDO+QLsuNMr/IwTkixUhgW+pOrAl9QZF11pwK/nJntYE5erPI5Rs1oVnfbgE8ZhEbqUcnJQADumJbKoFeCGq+u6lBMmGQS6FUTEpU20/gkK3/bWR8+tlfZqd41PY1J4YV79rhYZS5TnGKl9sRxqjuk919UmKIoEZel2xEEgUPhymJiqg1RFIdbWak2QiJUt0mLyncXl7PsSxXKPGfrqV6+8/xWNh0+rbweJAi5PJN5eH5e+Hu1ExIlwmeSTdqJ7qnrUa5B8xC8VdNHc5+H+m43KgG+PVda0P++p5G1VVKr7OK8WG6bJlUjf3y3jjUR/w7wwu5GPP4gPRGztMYeN2adhlumSEnn/949o7TOAP66o4G7Z2SgUQnsrutFqwKnSUMo3A4tS7MiArvPdFOWZsMTEDFZbMSYtbS7h4f7kYlFp5aAGh5/CJUgkGzT0zXkVwbzcqTZ9UxKsxFCmqV4AxIXKdUhEYPfre1WIOOJVh2FCWaCorQJkMmXF48bg40/6GNDjSQsCVI7Ld2hJygSdQ4pDr0yc1FmfW2DbArDk/UaFQuLhysjOWo7XKyu6mAoir8jcEmWmaXJgwwODODz+Thz5gx9fX2IosiHDY/Hwxe+8AXcbjdvvfXWR/Kj+neIz2yC+Sg3wYc5HgxXLh9lmH+8bZDr/7KPyuYBjFoVdoNkG3ukzYc/RNjYyK60t+To8wR4cW+TojY7K9fJ4gkJUTuxQEhkXXWH8tCmOw1cWRSHVi1E+W1UNg8oToxOo5ZFxfGjBrE7zvTybpiLYtJARoxJWfBn5TiVh1KvUXHL5FTlPOYVxDLoDbtd6lQ8v3u4DSa/f1HYvRFgSqZdgUCvPNyqzC1mR8w57pqRoQz4Z+U42XlamqPkGL0crO/BH5IUgXPjTEqCqciw4w0EFY5NRYaD050u+j0BDBoVeWEfGZcviEmnJjfeTJLTEmWWtrouyOoT0rW0eDs4duwYu4834glIO/arS5P4RnigD5AbJ+1Eg8Ega/dL5MeyMInxsc2nWX9MShglKTYWlCRQnm7HGwjxznFJ2fmSvFjumJaGVa+htmNIgVM/MCeLVIeB7rASwMthBWmAVYfb6Bj0cvu0NAwaFSfah/AHRSUhrjvWjjcQ5PowOODht07QEzE7+eqcHDQqgW2nerh6YhJqQWDLyS4Kwm3Abs+wOrBOBdk2AV8Qugc8pNk0km3AwDBwASQ7A7tBTWOfV6k65AiK0N7vUewN5Ggb8HE6ot2l10iD+q21w2z8BKuOa8uSSHWMHsJ3DA4P4WXi7sl2l2IE5jCGoccRpZE3EGJ11XBllOE0cP2kJBJGVPEikuPoXUUqbFYLF110EVlZWbjdbg4cOMDWrVupqqqira3tfee9Xq+X22+/ne7ubtasWYPdbj/na/9d44JLMB+mRQb/HAVkiE5YsqbYhx3mv3uik1ufPaDssgLBEEbV8A1pDPNL9pztU8QQU+x6ritLwqqPHvC/d6qHNyrbCYREnEYtt0xOGQVfbujxsL6mE39Qkhmfmx+nPHxyvulx+1ld1aFUGQuK45me7Yg6jisgqd8qn326R3kovYEQL+1rUmYsG44Pk+NkDoEmDL0FSdom3mrAH5SY8v/11gnluDJ/YmaOkzlhra2ydDuNYQiwzaChJNXKjnCCGR+jYsAoLZwVGXYGvQH2hyVYJmc6ONo8gD8oEmfRke40cCCimtGqVQryqyTZilolcLS5n6AoEep+tbQItQC9Xul7zSzJRqVS8c7hMwBk2QRaW1q4fUoSjjDC6ljLAD2D0qJzrFP6XW+ZksaEFCuD3qCihjwrx4kgCDw0T6piPH5JpmZKlgO7Ucud0yUkWFCU7K8LEq3cG7YT+NO2s2wJe+QUJJjxBUM8t7OBGLOOywuHE/cP54/jsoI4RODJrWe5b3YWGpXkZAqShEtIhFf3NyvVz7M7G7h5skTw3BnRFnWYNFRk2PGFwCPoyIk1MuCH9sEAMKxRl+6QFuaTHUPoNeooxJZKgMvy4yhIMOMPQXMYnpzpNHB1STw2gyZKwy7GpFGSpBztAz5WHGylqVd6b3Gyldm5EopSrs5FJBCIObxh0qkF9BqBLlcYehwGlczMcVKREb3A1/d4eO1Qq2IiJ+/d5o+P56YMDwKioh2YnJzMhAkTmDNnDhMnTkSr1XLq1Cm2bNnC/v37qa+vx+Uafmb8fj933XUXjY2NrFu37v9ruZePExdcgvmg+Gd6uMAwTPmjMPNFUeTvuxv46suVuHxBUh0GEiwa/CFoDd+DApCfYFZkv+UjNvd5WX6wlQFvAK1KYHFJAtNHDPh73H5e2teszA+mZTmYVxgnwUDDz2wwJLLpRCd1YYn5rBgj88fHo1ULUVDRNVUd7DrTC0CaVcXiCQlKeyHVqiLTMrwImLWCkhRUwjATH2BhSYIy3H1oXq4yiBeAv+1qAKS2i3y0myuSiQuT664rS2FdeLd/WWEcW05IO/mydDt/fvc0ve4AKgGWnRZ4aod0rPXVHUz79XallfONVyv5z1XVgNSya+7zKoP48vDCEtlOAyIG9XYWT0ziZ1cXKt/nyZ1txKXl0KOR2lWlyWbq6+vZ8u42hrzS7rnb5eebL+5hKCDQMCAteFOznPxkUQECw2TCmbkSVLo0za6g9Uw6teJfcsf0dIUfJLdEl05KIsVuoMflJyTClEwH35wrVU//2NdM56BPIYRK1zbI/eF5y9tH2zjZ1h/l4vi/1xajEmBDTQczsp0kWvU09Lh5K4xgA0neJjvWSI9LsgxOdxpo6fPi8ktCkNL+QcBhlJ6xhl4fRU6w6gTaB330eQKohWFk2jsnOhUuk7x4n+3x8ObRDuV3y3AaMGpVtPT7lHamzaBm6cSEUZbGVS0DvHeqW2n3lWfYsRs1DHqDinJ1MCSSG2dWKhetWpAgzKd7lN8/1qzlmtLEURu0kAhXFMXxhSwviCHKyspGESBVKhVOp5P8/HxmzpzJzJkziY+Pp6Ojgx07djB//nzuv/9+vvCFL1BbW8uGDRuIjY3l8xg7PnMJRk4A/wyosiiKqNVq+vv7aWxsJBAIfCjZl5+tOcEv19Uqi2lrr4cBmR0uSKW/CBxuGlAEK3PiTFw8Libatjgk8sbRdnaFZxDj4k3cMS11FHx5d10vG2o6CYZJcNdOShxV9td1S8qz/qCITqPiuknJFCVGt+UaB0K8Udk+7P7nE6gfDC98djWZZsm9UAVcPyGGoXBrbEKKlcqmAbyBEDqNil+uq1Ue+LPdw2rIsiNkolXPvKIEmvu8mHUS61t++Fv7vArf492TXTy5Xfr/IRFOdLiiJNcjo23Ap0BXK5sHmPf4TgX+mxGu4g6EbYzlnaxclcntP3m+pFFJ0vh3/O0Ae8MqyPMmZTN9+nScuaX4Q1IbUUBkb1uIFafCDo3xZuIsOsYnW1kQRnYJ4X+XQxW+f7pdfraGW5L+YEhRNT7U0Ic3EESnVnFvmHQKsKQ0kYvzYpmQYsXtD/KrdScVoirA7zedpijJoiDO/uO1o3iD0kLc7wlwuKmfmyqkyuXXG04pVVOfO4DNIPGTTrYPsaA4EaNWxb76PgqTLOg1Aq39XkViBcDjFxXts+oeGPDJv4kozUUGPFSkW6PIkioB5ubHjmqV1fd4FM6N/Lp+T5BVR9oV/bbSVCtLJiZiilCUCIlwoL5PUas2aCTpnqAogU8iJffLRsxcuob8rDzcpmzQ5GduXmEct+b4EUNBysvLPxS73mQykZGRQUVFBXPmzOHmm2+mpqaGd955h+bmZr71rW/xj3/8g/7+/g881r9jfOYSDPxzkGRySywuLo709HRaWlrYtm0be/fu5ezZs2NancqyLy/va0ZAkn2JN6kJAu5gGDosSg6MkcZeIPWVt9Z2K7bFYzH4aztcPL+7SYEvX1OaxIwISLF0DgFWHGpTyv7JGXbmjHNKD7s84A+EWH6oheowEqo0ycjNFSnKXEWuRAa8QeWBrusLcqxX+v8h4NUj3UprrLJ5QOG9+CKm/xNSrdjCbZMfzM+jM9wqvL48WVEZTnMa+OLfDyuf8/c9jcpcRisMkyoXjE9Qdugpdj17vjtbkVK5d3YGf7+rTKmu8sKyIvIi84PXa7jn74do6JHsgiel2wmGRKW9Nlzh9Crnl2zXU9ftpsflR6sWmBDmiRxukRa9fAfcMVFauDadlv4tTTfEsWPH6OjoIC28kIqgGMa19nsUG2aARzbU4guGWF/dgShKia1zyM8LYY2ymAhTq8YeD4Ig8I1wFSMDAuYVxmHSqalqGWB9dQdfmZmCAAz4JUKnLEvz+OYz3D0jnTiLjjNdLv6w5YxybLtBw9cuyQbgmR31PDBH+v8bqjsVPghIw/UpmQ48gRBvVbYpv60cVxTEkuPU4gnA/oYBQiLY9SoK440EQrDpRJfSKpuaaVd8bGTdPLUguUeO1BE73DQg8Xf8IQUIIANb5PPzBEL4IiT3LXpJcv90p1uZ+ek1Kq4ojFVM0OQIiXBZQRy35foJBfxjVi4fJlQqFXv27KG7u5va2lrWrl1LTk4Ov/71r6mtrf3Ix/t3iAsuwXyY2cc/w8NFHuZrNBpF8Xj27NkkJSXR2dnJe++9x65duzh9+jSDg4PUd7u45a8H2BEeTovAoYZ+ulzSeVj1GoVhf6rTpQzhU52GqBteQEKBRTL4Z2Y7WVqaGDWw9AdFVh5uVXrn2bFGbpmcjHXE8H5ffR9ba3ukh92g4QuTk6NaWwCHW928vL9ZURSeVxSngAAyY4zcNT1NWbxT7QalzSMAJfE65I8sjlNTkSJ9l7I0G9dOSqbfEyDWrMUfDHG4qR+VAKsOtbA2bKR2vG2I5rA3jVWvJj+sHpBtFXnuxmxFZuX7V46jN8yRmZMXh16rVqqeK4sSFMkSp0nLyvum8PBCiZci83Tk62TQqjnVIRl3DXol1rns+SIf7/KCeJ67oyzCSlegPwx73VErnffULCcPLS7nkrxYhbx5SUkGarWampoaNhypV67vc7saqGoeUFp/E1NtxJq11HW5eWF3I6uPSsni8rCky1+2naXH5WP5wZaIYzTSMehlZk4ME1KsSkL+xtwc7pwuIdH+d0MtR48cVkQgrXoNX7kok9x4Ez0uP3/ZflaBLbv9ITKcRuItOhp6PTT1urk0PxZvIMSft9VFwYYXlSTgMGqpaRuiY8BLeRjI0O+RLBDkCnD98W6aBqI7B33eEGe73ZhGrNd7zvZFAQLiLTqCosjW2h5FR6woycKN5UmKHhigAAFkmLhJp2Zyph2tWmrTKRWuiOL7AlKrzBsIsb6mSzG4kyuXS/JiuTMvQCjgp7y8/LykW0KhEN/+9rfZunUrGzduJD09nWnTpvGzn/2MgwcPUl5e/pGP+e8QF1yC+TDxcdj87zfMNxgMpKenK+VwRkYG/f39vLRhN9f9aTenO11YdCoWFcfj0AuEGJZ0GfAGotA8CeH5w6kOl3LDO01a5o+PH8Vx2XGmh1WH2/AHRRxGDXdNT1OkWuQ40+XmpX0tDHgl86VFxQnKQiAvRn2eAP/Y16LsGC/JdbB4YmJUW67fE+CtynaFIHe2283zuxvxhT+7OMWiLABXjo/HaDLhDUqyG+PizOxvlr6La3CAn6+RBvpdQ35+uU7awYVEiWUN0kMv62SpVQKrvzYdv19KIjdUpHHKJV2jCSlW4iw6tp+SFujZuTEcbuzH5QviMGopTLIoUOapWQ5UgqBAi2+enMrqB6YpGlUuX5Av/PUAP36rBpDkdzQqFc19Hpp6PagFgdJ0G2lOI+XhWY03EOLuvx+i6nSzshteNDkPlUql7PYBtp11kZ+fT0nFNM6GW4uT4iV01LdfOcAbB6SkM68wjm+GYctPbDmjmJF9+7JcChItDHgD/GLtSbbVSi0wSSUgqKgyR94fA54AX5yZToJFS1Oflz9Vq/CHpOvZ6/bzwp5GfrKwAJBEM59+76zyXkGAn14tzYteO9jK9CwHDqOWAW+QoDgsUPr20XZuKE8m0aqjrtvNgQbpGqiEsE5Yh4vrJiWhUwtKRRFv0XHL5BQSrTrcwWHNuCIHTE8MoVMR1e7UqhjVPqtuHeTVA630uvyoBSkBK1JJ4be6fEGONPYji23EmLQ4jRoGfUGlQheACckWcuJGVy6X5MVyT2GIgM/7sZLL9773PdatW8fGjRvJzMz8yMf4d43PbII5nwrmo8jsa7VaUlJSqFcl8X/H1IS5iAz6Qrxd1a6gkcbFm5RyvjtCCtyoVSlVgqxH1ePys+bYsEPflUVxTMmMRr70ugP8bVejItUyM8fJ9WXJUdVNMCTydlW7shCkOw3cVJEySjZ9y6le3jjSRkiUKpOvz8kiLkxc02tUOMItkGE58wDrq4eJfWuPdSgzih53gNdrhnekx3vFKK6MHDeVJyvzof+8Mo/MGGnhvyg3hkPHTnKmx4daBUsnZyt20ZcWxFHbMaQw/qdmO9gahvTOzHGiEgQFaTYtS2oZ7g7zUqZlOciKNSntsunZEsdCFrzUa1SIoqgQIiekWjHrNGEOjZSkYkxaTne6uP+1GvwhgXiLTknwlc3D33ljTSev7G9mx2mpYhwXb+YPd8zAYdTQMBDicGtYk83dQIl5gAnJZjyBECLSXCjNaeSHYe2zt4+2IwIzsp2KSsBrB5pZW9WuJFOAX6w9id89xKI06d462ycBIr568TAKLcGq56YKCS3W3Ocl1qwlxqTlbLebTce7lPbYr9afigIOxJm03B7WOnvqvfpRzpU3V6RQkmJlwBtg+aFWfEGJJGrUqugY9PHSvmYFQSlzvqp7YVebCl9ISlC5NinZNPf7lPZZklXHNaWJUb73QVG6vrJUklmnZl5RHHFmHb6gSDDc/+12+RW1cAB7WErpQOMAp8PuqPJjPSvHyRcLQvi9njGV2T9MhEIhfvSjH7Fq1So2btxITk7OB7/pE4onn3ySiRMnYrPZsNlszJgxgzVr1nxq5/Nh4oJLMB+mRfZRZzDnw8yPlH3xB0XGxZu4bkIckujs8HtrO1ycCjvoaVQCBYnDsuNylTASoqkWpCSxrrqTvWFv+pw4I3dPT4uSwgcJHSPJuUvtrVumpJAzoofd0OPh1f3NDPokaPLiCfFMG4FMa+rz8Pi7dXQO+VAL0sIcE66yzDo1352Xq2hTmXVqZufGKEktxa5XKgStWuD6ScnKbOkrszO4bJz03SbGQpyvhfYBHyatinkFMaw8LLWBKmL8rD4mwXEvHhcLAsqiP398Au/USH+bmePErNMoA/I5+bH0e/wcCifT2bkxnO120dTrQaMSKM9w0NTroaHHjVoQePzGCbz0xXKlattQ08m9Lx5mc5ibMj0806rtcNE15MOgUfHLeUlYtSKdHulNUzIdyv0hVxkXh+dBv1x3kpWHpO90SX4ssWYdPwpXECISamrmhDx8Xi9XJQ3PYzJs0qZocqaD+UXD8OMbK1KYnOlgUUkCIvDT1ceVzzPr1FQ2D/DE6gMsKc9UZmfJNgP3zc5kWpYDbyDED16vVv4GMD7Zym+ulXTKlh1oxmFUEx82DAO4bWoqNoOGQ00DHGvpVzg1HYM+1CqBaWFY+0v7mul3+6O4Wb6gyKX5ccpsUE5KsWY9105KiprbhESoG1ChD2cfAWnBaR3wsfJwG11DfgnuXBDLVSUJUZuoIV+QDdWddLukBJZg0VEUFuqM1Ckza1WjZi6iKFkhfKVYwO91n3flIooi//M//8M//vEPNm7cSH5+/ge/6ROMtLQ0fvWrX7Fv3z727dvH3LlzWbJkCVVVVZ/qeb1fXHAJ5sPER/VwkVtiwIfSFPP4g3xn+bDsC0gL0vLKDjxBlHI+L7zLlS0mAiGR9l6X8iDbDRq0Kmgf9CucDb1Gxfzx8aTaowf8pzvdPLurkW6X9EBfV5bE3ILYKMZzvyfAS3ubFQJbebqNq8LkzEj0zRuVHcouOD/BzNfmZEWrzob73LIy7ZAvyKPvnOZstxu1SuCKwjgae934gyLpTgP/eWUezeGH+juX56IJS53kxJm4KC+Wzaekxf/mWQWsb5W+V6YlxLde2EnXkB+dCjad6uedRuksq5oHWPDELgIhEbUAtz17gD9urQPgZPsgX3z+ICfah5QFaW1VO0FRJCfORJrTqCz6FRl2TDp1VHVi0WsUgU6DVoVeLbDjdA+bRiSYXWekYxTG6Qh0N/DHG4qUuURN2yDeQBBfIKRUSl+/JJvLCuLwB0WFJHppvtT+mz8+XvE7GfAGccTGMWHCBKZMqVCu+aYT3azZuIXDhw+THzP8q3YNSQvoQ/PGYdSqFAmUr1+aw11TJKTaG2dVvH1WVDx9mvo8vHW0nZ9dXYhJp+ZAQx/Phzk5AlJSbOn38mC4cvmfNbV0DA4Lim6s6eRnVxdi0avZ39DPiohZUDAk0j3k51tzc9CrVdT3eAiERJJseuYWSHDc1VXtyswr0aSSzM0GvKw41Eq/J4BOLXBVSQKFiRKTf8Arnbdeo2JGlgWbXj4TiXPzzvEu3jrajj8oYtapWTIxUVF9lhNY+6BPab2CBFXXCFJlJLeg5aPOyHZybxH4PC4qKirOS9FYFEUeeeQRnnnmGTZs2EBRUdFHPsY/O66++moWLlxIfn4++fn5/PznP8disbBr165P+9TOGRdkgvkwisof1cNFZuZ/WNmXtcc6EIDLC+KYm20K74il98rlvNzGirfoKE+XjJF6vMN+KmoxQEwE5FivUUnqulUdNIUH35Mz7CyZmBS1ewuERJYfbGXT8S5EpEH8PTPSoloKIHnLvB0mZxo0AjdPThnll3GifYgn3q2jzxNAr1Hx1YszmRk2oxKQJD0EhiG8wZDIyiNtisJAQ4+HB189qhDffrmuVmGen+50ceuzB5VF4AdvHOdkp/S9qntgX4f0nXwhONg57CvSPuhT7AeCotT2kPv1TX1eBbYtAg+trOa/3h4mb6463KJUI7PHSQvetnA7bUaOVGXIis2X5MWx4r6p5MQZld9kY00n/mBIacHlmrxMmTKFjMQYBb59utPFt187xq4z3bh8QeIsOgqTrfx8SaFSCWhVguIdM+gNKq2nHpefR9+R5GhkdWWjVkWfD3a5E7FarawLV3IAv9tYy5nWHhKsesaFARBqlQCeAfLEJvLj9Az6Qvx1hzTfuaJISmq/WHsSnUbF/RcNzwMWFifw9UulpPKz1SeYnuUg0apXvvv3rhhHTpyJ1n4vv1p/UvGOkaXzf3DlOOIsOk62D/HY5tN4g8M90NZ+L1XNA5SOgAS3u0LkJ5ij5ka+oMhbR9sVgVWdWiDOrMMTCPFe3SD9XkmSc2qGjctzzFEKy0O+IK8faeN4m1T9Jdn0zMmLRasWouRtuod8JNqiN2kikiLGVyeo8LmHPlZyefTRR3niiSdYv349EyZM+OA3/YsjGAzy8ssvMzQ0xIwZMz7t0zlnXJAJ5oNCo9F84JA/Mrl8WGb+8bZBbnp6v2JgJQIbj3ey6Yxk/hVj0nLrlBQFpSU/uB2DPk60Dyn/nR1rRKuCbi+0hYc3Jg1MStIrrSW567Cvvo/Xj7QqLbAvzkhTFJHlONvt5pmdjUpLYWFxAnPyYhSjJ5B81F/e16xUJeXpdm4sT45qnXgDIf649ayChCtOtjIlopW2ZGIi15QmKf+d4TREqda+Xxi1KgWJFmPSUpoqfQcBuHt6mlLtTUpQc2fe8ObgD9fmc+uUFOV8nrhpgtKqK0yMHtye7nTxg9drlN1zIBii3+1XEoqstSb/98wcJ9lxJq6aMPydXtjTyB3PHmB3+Bg3z5mAxWJhW/g9WbFGdGoVm0908sh6CbhwaX4sKkHAZtAyOUO6Xv6QyJPhqmvzCUldQdZse353I9tOdikkxy/OlKDEK450sL/HwPEeScMrN0aHyy/yvWUHeeOd7RwL33fBkMhP3qphYkkxj1w3UbF8yIwx8utrxjM+2UK/J8BDy6uUygwkHtD15clckiehxe558TBtA15lZ//XnfX87OoCsmKNtPR5eW6XVPWYdWp8QZHfvXOaO6enEWfRKZuGRKuOhy7PIcmmo23Ap6glTIjXMjvHqShVuHxBdGqBm8qTmVcYhyBEW3/HWbRKFS3zZ/bUD7Dx9BD+kHT/zM+3MT5WzfBdLSW29051K8fKjjUSa9LgDYrKJk2OaVkO7i9R43UNfqzk8sQTT/Db3/6WtWvXUlZW9pGP8UlGZWUlFosFvV7PV77yFVauXMn48eM/7dM6Z3wmE8wHVTAfZZgvhyz70trvxaRVc9vkJAqc0Zen2+Xnxb3NCkqrLN2mILkiZctdviCaMItbr1Fh0qpwBWB3oxtPQNKCmpyspzwtWhiv3xPgrzsbFYXimTlObp+aqniUg7TbXF3VzrsnuxGBeLOGL1QkKz4jchxo6GPZwRa8gRAWvZqvzckcJdVxtGWAtyrblcd5e223Iqw4LcvBF2dmKN/rZ1cX8P0rxwHSgvTm/VOU411TmsRzd5YpXjB/uj4PrU/6DldNSOSO6RnKAPa/r63AnCTtssfHaRBba9h8TKqIlox3UpJsoT5M3vy/myfwowXSfMOiV/OlWRmkRLQWH9t8hkt/v4MhXxC7UUNJipWuoWHG+Oxx0RXNDeXJWPRqDjcPEAhJjO/xadJr5JnPguJEHr2+GBUorRc5cYVEkX1hLg1I/JeNNR2sDieSayYl84XJEtnxOyuqaB/w4TBquXd2piLf8qv1JwEJ2PDbG0rRqgWO9gi8fEYrJRGLiFoQqeoRWHuin0HPsJFcW7+X1n4f/3ttMUatmr31fRxs7MekU5Ni19Pa7+O7K6r5xZJCYs1axf30e1fkMi7eTPuAj/9YfoyLcoeZ52oV/HBBHrNzY/AEQvx242k6B32oBEm0tW3Ax282nkYUo5+hyg4/NW2DSuUtw8hfOdDCxppORFFCw5WFLY9r2oYUHbHCRDOLJyRG3dduf4i1J/o51hUEBBIsGi7JMGDWRKPRznS5h6f4DLfFpmc7eHCSFvdgPxUVFeflxSKKIn/5y1/4xS9+wdtvv83UqVM/8jE+6SgoKODQoUPs2rWL+++/nzvvvJNjx4598Bs/pbggE8z5tsjOZ5gviiLP7qzngVcqFaMmlz/IC/taOd4jPaATU63cMT11FLw40iHSoFGFIbHSQymTCY1aFTkRTG9dWMplT7OXA41hd0mLmlvL4okzjx7w/31PE56wYdbtU9MoSYmubjqGArxyoEWxfr00P5bZuU6pugk/l4PeIE+8e1ZZeBeMT+Bbc3OUisMYftC7XH6lTbS7rpf/evsEgVA4aWyt49fhHX1pqo0/vlvHkaZ+9BoVc/Nj+Z810sI5d5ydyqNVHAhvrO+cns6LexsJiiKTM+zkxJlYeURakO+YnUdiYQXNQxIKKcZVzx/f2oUIjE80kmDRsqFGQppdUZTAty/LZUqmA4BJqTbSnUblOve5A3xv5TFeO9CMiMSxSLIZ6HMPAwTunpbKj6bpFc5Gj8vPW0fb8AaCCmv+4nExXFoQx4OXDsOTZW+Xw439dAz6sOjVSsL47opjynsXlSTy0LxcChLNCkl1UUkCOrWK/7g8l6yY4fO9ZUoq+YkWxS3zULNUeS7JgjvKpATw6LtNfHfZQQAcBjWeQIiHVlSR4jDwpVnpyvldX5bMH2+eiFGrYueZHr65rEpRkAB4s7Kd319frLTH/r5HqlxS7XqCIYmomuk0RFk7GLVqvj03l8vCcxdZALMiWc+XZmZg0avpHPIrWmCLJyZyQ1lS1DzQ5QtS1+1Wnhs5GR1rHeKNyjY8/hB6jYrrypK5ND963tg+GGBLvUdBb2batWSEb/3I7yYiCax+baIW90Dfx0ouf/vb3/jJT37Cm2++ycyZMz/yMf4VodPpGDduHJMnT+aXv/wlpaWlPPbYY5/2aZ0zLsgE80ExFg8mMrnAhxvm+4Mhfrr6BL/ZcIqQKHmE3F4eh3PE/XmkaYDndzUpbYAlE5OUIaS8u/IEQpzpGiZYxpm1mLQCve6AwtnQqQUuyYsZNeBvGQzy4sEOOockPsCiIicLi+Oj+CtDviB/39PI0WapMihKNHPdpCRFpVaOzSe62HG6BxFph37b1JRRnjBrjrXz6KbTkqGUWcsDF2cpyDSnSdJxipSrkbkt8ufsONPDmjDE2BsI8eCyKiV5bTzZx88OSPpQeo2K7648xrM7hkmJX3+1kpY+LyadJJ74fJjVPq8ogfmXzeFIv3RtJti8bNryLquPSNXN3Dwn/mCIzWFhyG9fnsvqB6ZGzaXePtrOY5slBvvkcCLaWtslAQRijbTUHiXFpsWk1yrf63srq/nPVdW4fEESrDomhKsyefcP8NedDTy1/azCrr8kP47vXzmO6dlOPIEQIVHyvsmOM2HQqvnxwmG0kUfZaKij7BJOhRn/d01PVyx9dSq45uJJfHvhRKZnO/GL0OISMGoEvj5Jg1EtUtk8wEMv7+fNCAn/V/dLSfV31xUjAHvC0PKrShJwmrRUtQzw3VXHWFA8bFymFuDBS7K5LQxTfnFfM20DPsw6NZkxBoZ8QX65vlZpp8oLxf4WL3/b1aBIBZm0akKi5KS57GCrYkWxsDgBq15Nj8uveArFmnVcWRQXVbl4AyGWH2xh8wlp3phk03Pz5NRRKhdn+/x0+Yc3ePKjUeAQuDvXw0BvF+Xl5edl9CWKIi+++CLf//73WbVqFRdffPFHPsanFaIo4vV6P/iFn1J8ZhPMWB4u8r99mMql3+Pn3hcO80qEVHpjr4e/H+ikxyvJWiydmMRVE6KJir6gyOtHWpUhZKrdwKwcBypB2hFHUgmshuGF3aRT4QuKrK/pUnrHZWlWhcAmR1CEt6t7WF3VQUiEFJuWe2emk2yLThLVbUOsPNyKNxBCqxa4ekKiwpKXE0HXkJ+X97UonjCLihO4pjRJkbGRX/O/75xWkGmpdj0n2l30uSVQwMv3lCscC4NWxZdmZSiCjSadmsJEUxSMNTK8gRCnO11KVbSvvo/NYba7yxfk/pcreTvMct91poc7njtETbvkr3LdnEmQkE+vV8SiBX9DJX9fv4d+TwCnSUNZup3q1kG6hvwYtSpevLuMSyIW8Jf3NfH7TadZWyUlwiKrF6vVijo+h84hP2admrtnSFWArDowJ0+atYiiyLpq6bwWhhflRzedViDXC4sT0KhU/O76YuW3G/AE8Aak+y+Swb78UAvvHO8gGBIVGX+AR9aforKpnx6Xjx6XtED4QvDk7g7UKoH/uipf6QRlxpq5ad4Mfn1NEQKw4dQgdd0ebDoYHy8Nz7/y0mHirTpsERuDVKeRp28tJcak5VjLIP/3bh2Aoun1/ddrGPIFojzrvYEgi0qS+OLMdARQKq6ieC3/eeU40h0GAqFhIMukdCs3V6REgVT6PAHWV7croA6TTo1Bo6K138u66k48YXHNxRMSubIoLur5au338vK+JkXloiDRzEW5TtQCSlIDqXKpSLfx0HQrIZ9H4jrt2kVlZSWtra0KofeDQhRFli1bxre//W2WLVvG3LlzP9T7Po34wQ9+wLZt26irq6OyspIf/vCHbNmyhVtvvfXTPrVzhiD+s4xV/okRCATed8bS2NhIS0sLU6ZMOa9hfkOPm/v/cUQZiE/NtOPU+HjntJvAOa5Gkk3P/OJ4Vle20z7CiMmkUyvttYJEM3VdriiNJ7NOTUWGnb1ne3H7pQFvcMTnWPVqbqyQDLZGem5Extz8GDRqNRtrOqIqFxXSQyciES+Lk61sOt4ZJZkOKCzpFLuer16cFSZ1DnGukJ05AZZOTCLRpufP28+iEuDleyrYcaqb328+g00LK780iZ9ubODdk13MyHby1YuzeOCVSvo9AZaWJmI1aPn77kYEJIjx2W73KFOryDBoJIfDaVkOfrYwh1+uPcHm04NcnBTi7lILbzdqeK2qnyuK4vn9DSWsPdbOt1+rUtB6kfG/8+JYML2E371zmmd21LOgOIHfXlfMioMtPPymxPrPjjXytzvL6B7yc82f96JVC7z3ndk8u6OeJ8OQdaNWxc7vXoROreJUxxBXP7lH+YwFxQn8+poiFj+5lzNdLqZlO9h9phezTs2Dl2bzq3W12AwaJmc42HSikySbnknxataecpHpNHA2vKj+7OoCmns9ymcC/MdlOdwzK5Ofvn1cQfHdVh7H3BSRH2zqotUlVUC+kFSFyi3Tu2ekkxtn4uE3jyu/5xM3lrD7bB/PRFSWTpOWcXEm9obbgRqVILlvqsAfgpGPRbJNr6hJyxFj0rKwJIFttd2KCKp8zcoz7Ow/26fMIEceL8Gq44qiBPbX9yr+R3Jo1YIy5JefnYoMO9+q0OPq66GiogKDwUBfXx8dHR10dnYyNDSE0+kkPj6e+Ph4jEYjY8XKlSv58pe/zCuvvMJVV1015msulLjnnnt45513aGlpwW63M3HiRL73ve8xb968T/vUzhmfyQTT0tJCXV0d06dP/8jJZX99Lw+8XKnoLI1U75X0vFLYeaaXw03nXuhnZEstm30R3usgEcL6vQHFE0SjVimGXSAt8BflOvEGh4mGY8XULAcTUiy8vK9Z8WGRQ35A7QYNlxXGsbW2a5StrUmnwuULIQiS0F9Tr2fUg6scT4D7ZmViNaj57TunCYkSeqjH5R+VoOTQqAQyY4yc7pR4P9eVJlCYbOfna0+iFgRWfWUK757s4n83niLZrmfN16bzw9drePtoGwuLE/jNteO55s97OdE+xANzsihLs/Pgq5WShlaMkaYe96gkLCfH319XSJE9yC3/qKXLLXJfiYYFJYn8fu8QW071cs/MdErT7Pz4zRqFV3LxuBh+tDCfO547SEufl99dX8z88Qlsq+3ivpeOKNc02a5nRraTFYdaubwwjsdvnIAoiiz50x4Flv7zxYVcMymZ3248xTM76pmUZuNo8wCBkMiVRfGsq+7ApFOz4evT+dayKvac7VUS9b2zMvjSrExufmYfZ7rcyuc+efMEqloGeOJdSSdMpZIW1evLknntYAsC8Islhfxp21ll8dapVTx160TSnQaufnIPQz5p8f5qcYg+zLxQJb1OrZIM6uwGDX0eSQngrunprKlqV5KEWoC7ZqRjN2r4/aYzyuYly6HlrlnZvLq/WQGfAOTFmyhNs/H6kbYoUzf53giEROxGDTq1KmoToRIk/pBWrWJ9dfso9QA5ChMtjIs3svF4V1S7EiSE5H9MNjDY28XkyZPHTB5ut5uOjg46Ojro6enBbDYTFxdHTEwMDocDtVrNW2+9xd13380LL7zANddcM/aJfB4fKz6TCaa9vZ0TJ04wffp0RFH8UPMWgDeOtPKjN2vwB0U0KoF5BU7qWnuo7jn3JZie5aQgwcSrB1uUdoEc8oNk0qopTrFwqKFf4ZOApN+V5jQqsOexdtbpTgPzixJ482ibgk4bGXq1wPXlyRxvGxqV0CKroZJkKwativ31fVE7RINGRSAkEgiJpNgNzMxxsr66I4pXEBlZsUbunp7OU+/V09jrISvWxOX5sSw71KLwV94vdGoV+YlmjrdJsuq3TElldm4MX3ulkpAIr907mR6Xn3tfPIxRq2Lzt2ay6XgnP3i9hhS7gXUPTueFPY08sr4Wp0lLsk0ftbgBFCdbqGoZxKJXs/z2fFra2rn37S78Ifj1ZZIa7/dXn6WqR1AWcfn6m3Rqtv/HLAxaNT94vZpVh1u5ekIiR5r6Ods9vOj//oZirihKYMgX4OLfvqf8/gLw31cX8Nim03QN+Xn8xhJcviDfD/vVANw8OYUfLyyg1+Xnmr/spa1fgguvfmAa6U4DG3Yd5qF3egmIktzJ9v+YhUoQ+M6KY8qspyTFystfLOcX62p5aW+Tcl4JVh35CRa2n+rGqFXz5dkZyuwJpM3Bf10Sx9YTHfzjuA+Q5jh/vWU8rxzuYtXh4fmN06SlONmqABXkJG7SSPeVd8RjWJRk4UznkCJSCtKs7/qyFHbX9URV3yqgJMXC8XYX3rAS8sgNXaxZy1UTEqls6lekj+SIrHTkJDkpzcZ3p5oY6Ok8Z3IZGX6/n66uLjo6OlizZg2PP/445eXlvPfee/zpT3/izjvv/MBjfB7nFxfkDOb9koUoimi1WlwuF8eOHaOrq+tD2Sf/Ycuw7Is6LMS3prpbSS75CWa+elGGotUlx666Hp7b04TbH8KoVXF9WbLi/yE/LC5/kFOdLiW5xFt0mLQCPe6Aklx0aoFL82LGdKl8akc9rf1e1IIE+b2mNHru4w2KvLi3WUku2bFGrp0k+XpEbh6PtgxQ1dyPGP68WTlObGH0kXyuzX0eNtRIyUVAgu7OK4zug9d1ufnJ2ydo7JXk77NjjRxq6qfPHcCsU7P8nlIuzxh2GFxQHB8lZOgL+9zLO9uX9jbx1ZcrFY2pZ3c28N9vSy2bJRMld8/nwqZlN1akoBJQ5Fi+clEWr315ikJqlD+nKqw15g+KrDru4qjbgT8EWTF6kg0BKo+fpqZXOp+fzktlUppNSe6ylpbLF2RDdYfyuf+4p4KCRLOyqLWHE/6G6g6lsrqpIhkR+PGbx+ka8hNn0TEnL5bFE5O4L4L0KLtiOkxaBUAhAj9fe4L9Bw8R8nkQwhe9zx3gNxtOASjkR4CmXjfNfV7+88o8pmU5lfO6ZUoaj99YwswcJ25/UEku10xKIjvWRNuAj++sa+XdVjUgoBLAHRC556WjxAU6SLYMz2kGPH4mpdl4eP441MLw/M5p0vCDBQWKRbQc3UM+Li+KRztijvfn7cMoxTizloJECyHgSPOgct0rMuzMH58QpeTcNeTnuV2NSnIpSLRwU3kyjrDGmBzBkEhpqo3vTjPT391BRUXFh0ouIOkKJiUlMWHCBL75zW/y0EMP0djYiMPh4L777mPRokU89dRTH+pYn8dHiwuyggkGg2MSKeV5iyiK9Pb20tHRQXt7O4FAgPj4eBISEoiNjVVcLyPjkXUneW53IzaDhoszzbxX10uPd+xEplULXF+WTPeQn/U1HZzrCmXEGEmx6dhdF10xJNl0CAhK+8GkVeEaVebbKEy0sOJQq8KSHxmJFsmzfM2xDoVZL4e8GxSQ+DLNvW7OdEcTz2KNKno9IYKiNLy3G7WjKgGdWkAUJeJgbryJL85I56nt9YpT5shQCZBghDaXtGB+/ZJs5uTHcvMz+/EHRf5ncQFmnYb/WF5FSJT4CR0DPoXVPVYk2fS09nvRqQX+cU8FvS4/97wgVTebvjmT9gEvS/60F41K4J1vzqBz0MdNT++P2g3Lu90bSuzMcfRSK6Ty+23NZDu0PDxFTXf/ED/cpyY8KsOoVXPl+HhWHW4l3Wlk7demIQgC31lRpcjrA9w+LY3Kpn4ONfbz9UuzuW92Jj9fe5KX9krot5k5Tp6+bRIgyen/dWeDcj6/WFJESYqVq5/cg4B0X/mCItOS1GSmxPPqgVYyY4xKy+srF2Xy7skuqlsHsRk09HsCpDkM/OmWiXzt5UrlN9FrVDx+YwmT0mxc9thOhav08IJ85o+P58FXKhVVaJNOzZ+/MJFHNtQqaEYAgxpSTHA6/E9yJWzWgCgIuPzRN/2UTAenO4eiIMIS8TiVw039bK3tjnp9TqyJxl43vqCIQasa1eayGzQsKU3iZPsgO8OOq2OFfJ9PTLXynzOs9HW2MXnyZEwm0znf836xdetWbrjhBh577DHuvvtuTpw4wRtvvEFdXR3/93//d17H/DzOHZ+ZBBOZXCJbYqIo0t/fT3t7O21tbfh8PuLi4khISCAuLk4xFlp+sIWfrj4e1S8WBJibH0eMScvKw63ndFPMcBqZWxjLm0faoh4wkAiA8gOeF2/mbNcQkSMTq0HD1Ew7u870MhQWoxz5MRa9mlsmJ3OocYA9Z6NbYJExM8eJVa9mY9jdUg69RkAUBXzBkOJLc6R5IOpzTBqwGbW0Dvgls7QMO6c6XYoHixzyYF0lwE8WFeDxBfn1hlqComQO5hkDBSEIEucm3Wng65dm8+yOBo61DnJZQRyP31jCHc8dZH99H/MK41hamsT/rDlJS7/kdilDWKPOIbwgzcmL5XfXF/PLtSd57WCLMsx/YU8jv1h7knHxZu6/OJO/bD+roPoALs9zcKrbx5kuF/95ZR63T0tj1YEGfvBWLXadQKw+xOmB4c3FF2em853Lx9Hv8TPndzvwBkLcVJEShTBUqwQ2fWMG8VY9J9sHWfKnvcrfvn5JNrdNTeXyx3fR7wkwJy+Gd092IwClaTYONfZzaX4Mk6xDPH7AS1AcTojP3j6JE+2Dit0BSK6lf7+zjK+9epSGHrdyneItOgoSzWw/1YNGJTAl08HOMz1RQ/Bbp6biD4q8GnHu07IcPLwgn2+8elRBC1r0ar46I4nuvgH+erBfsZ1Isaj48sU5vF3VoQixgtRKm5LpYNPxzlHPifxdEq16smON7KnrJTKdjE+ykOY08k5Np6KKPDLyE8xMz3awvrpzVKu4JMXKD2ZY6etsZfLkyZjN5jGP8UGxY8cOrr32Wn79619z3333fai2+ufx8eKCTDChUCgKZniu5DIyRFFkcHBQSTZut5uYmBgSExOJjY2lsvoE22q7OROws+1UX5TWEkitrZsnp7ChupOatuidfmQ/eFaOk363n8qW6NekOQx0D/lwhQlkKoGouY1KgMvyY/GHYEuYOT5WTEqzMiM7hpf2NinsZznkXrRBo2L2uBgONPTRHZH0BCDNaVQcKFMdBvpd3gjbWyny4gw09UnnGm/RkR1rZH993zkH64XxBm5Ic7OswUBNpxebQUNOnInK5gGF+zPyek3LcmA1athQ3YlBq+Ltr06jqmWAr796FINGxdoHp3O4sY9vLKtCLUjtkeNtg9HJUy3gD0miiE/fOpHpOTFc9cfd1HW5+eH8PG6dmsZPVx/n5X3N2HTQ74s+91e/NJnxyVa++PdD7DrTw32zM7lvViqPrKnmlSMSyMKghgenx+BTG3lsaxP5CWZW3jeF9dUdfGd5lbSz16lZdu9ksmJN/Pfbx3llfzM5caYIaR4bBxr6yYo18sb9U/n5mpNRCerH0/UUJpho1ybzreXHJBUGi46N35iBVq3iiS1nFMHP6dlOnrmtlPYBH7c+u1+RuX9oXi63Tk3j4TdqeKuyTTn2H24s4XjbIE+EYchy3DollRWHWnH7g0oloFYJJNn0NIXFS2XwgVEtIiLgGZHvZ2TZqOvx0hIhNOk0ablzeho1rYOsO9YxonrX0zXkwx8UozZfcph1apaUJtHQ41ZES8cKrUr63YuTrfxwlo2+jpaPlVz27t3LkiVL+NnPfsbXvva1z5PLvygu6AQjimKU++SHRYrJMTQ0RHt7O62trQwODqJWq8nJySElJQVRpea9Uz1srOngnZoOhXkdGXPyYkm26VgR9sKQQwA04V2jSacmL95MZXN/VMWQbNeT7jAoFYn8wERGutPA0tIkVhxspqlvbLiuNkzsbOhxR/mEgERy8wSChETpwTbr1KNaUTmxRjyBEM190own3iJVMZHhNKpJtBmoCVcBF+XG0DXkG9VOk0OjEvjm3BwserUiRHn7tDQ6B7ysHbHgRF6z/EQzTb2SjcFtU9P4/pXj+MIzkvbbrVNT+eH8fL768hG2nOgiI8aIPxiKWth0aoGSFBsHGvqw6tVs+uZM/MEQc3+/A09A5Mkbi4i3m/naK5XKLlijEphfHM9ble2oBFj34AxSHQZ+sfYkL+xpjFoE9WppqP3lciu3Tc9CbbQy97FdygzBZtDwowX5/OjNGjyBEH+7YxLH26Krjx8tyOMLU9IQRZGr/rhbkZu5scjIj66dQk2bixue3qe8fk5eLL+9rphH1p9k2YFhVeOlpUl8/8px3PDUPoUTYtCo+OXSIoqSLCx+co9yT87IdvLra8ezbH8zj4etkrVqgR8tyGdyhp17XjistGtTHXp+vriIA/W9PPFunXLPjovVcf+ccbx6oDnqPjNpRAqdKg53iqM2H3Ik2/UUJ1l4t7Y7qkOQFWtkXJyZzSe7xtyEgOSndEleLBtrOke1ZYuTrTw8y05vRzMVFRVYLJYxj/FBcfDgQa666ioefvhhvv3tb3+qyeWXv/wlK1asoKamBqPRyMyZM3nkkUcoKCj41M7pk4wLNsH4fD4lscCHY+aPFUNDQxw8eBCTyYTT6aSjo4P+/n4cDgcJCQkkJCSg0urYW9fL+uoONh3viGqDKaganZr54+PZU9cb5UcBkGI30NLnQUTqSw94/ES2nI1aFQuK4znSNKBAXUeGSoCrJyRi1KlZHvZ/iYxIBFF5up0tJ6Phm3o1xFr0ym43zWGgqdcTtdjbDBoqMuzsPNOjyM/4AsGocxWAkmQLjX1eelx+Yk1qxtuCVA9o6BwaG0GWn2DmrhnpPP1ePac7XczMcfK1OVn8bM1JqlsHx0QPASTa9LT1e9FrVLx+/xT63QFufHo/AvD6/RJL//LHduL2h4i36ugYGE7CRq2KL0xOpa2tjbdP+8iJNfLmV6fROejjssd2Kn17WcoHJM/5ZfdOJhgSufT3Oxj0BnnyCxM43NjPn7edRQx//+/NcpKl7WdtXZBVdZDp0GE36TjSPJxwi5OtvPqlCgRB4Mdv1vBaWPK+ONnCH78wkX53gMVP7om6/jeUJ3Om08W++j6mZTk43Niv2B7IldCXZmbw1531Yai4nrYBL3EWHXnxJmVWEWfW0jnkJzPGSFu/B09AciP1BUVcviAxJq1ifhc544lEMcozHp1KqlxGjEiYnevkTJdbqXRAms9ckQ6dAT3bG7xR381p0jLoDSiurIPeQJQhnUGrYvGERNoHfYq19Fght/uKkiz8+CIHPW1NTJ48+byTS2VlJQsXLuQ73/kO3//+9z/1ymX+/PncfPPNTJkyhUAgwA9/+EMqKys5duzYeVdnF3JckAkmEAjg8Qzf2CrV+YHduru7OXz4MGlpaYwbN065uTweD+3t7bS3t9Pb24vNZiMhIYHExER0egMHG/pYX93BxpqOqH5wZK873WnAZtAoaCY58hIkd0V5KB/5HjmmZTkoTrbyj32NuP1jX/4Ys5ZrJyWz+XjnqKokcnaRn2Cm1+WjfTA6KZam2qjrdtPj8qNVC6gFIQpMIAAzsiVjrffCciA2vYp+b/RKY9FAVryZoy1SdXNjeTKCILDi0OgkCNKweNGERKwGDS/uaUItCPzjnnKGvEG+9OJhgiFxTJKeWgCTXsOAJ8DcgjieuGkCv3vnFE+/V09BopnX7p3MsgMt/HT1iVGfCXDHtDS+e8U4fr/pNE+/V09Zmo0Xv1jB+mPtfOu1KmUxTLbrqUh38NbRNnLiTLxx/1RUgsD1T+1VXDBBSgabajrocgW4e7yGEpuXN5oMvNsgXeeiJAvP3DYJk17Nwid209znUWZHSTY9aXYd+xoGmJZq4LIJafxyba1yDjqNitUPTKO1z8MDL1cqbdBL82P5v5sn8u7JLr61bNgi4ftXjuOWKan8buNp/hZG26lVAs/ePgm7UcO3XqtSEpTDqGHZvZNZX93BY2E5IIDxyRYeWVrEszsbWHFoGKZcnmLiy3PG8ezO+qjKJcakZWqWg401o2cuymv0IkVxOva1BvBG3AuJNh1FiVa2neomGNayG3mI7Fgj8wrj2XKyixPt0UTfwiQL/3Wxk+7Wxo+VXI4dO8aCBQt44IEH+MlPfvKpJ5exoqOjg4SEBN59993PlETNh40LMsHceeednDp1iqVLl7J48WJSU1M/8s3R2NjI8ePHKSwsJDU19Zyv8/l8SrLp7u7GYrEoycZoMlHZ1M+G6g421HQorQqQFsRYi4728K463WGgYURlk2DVMSs3hndqOhVY8MiLbdKquH1aGsfbht53LjMhxUqsWce22q6oVoXdoEalUtHj8qNWCSRYdVFtJYBxcSbyEsysr+kkGBLRaVT4RiDXEq06FpYksu5YO819XjQqEEQR/wgV3aIkC11DPtoHfKQ6DHz9kmxWHGoZ1b6TI9asY2FxAu/WdlHf7WZOXix/vHkC//X2cZYdaMGilzTJmkacc4bTQFOfl2BI5A83ljC3II7bnj3AwcZ+bipPIjbQxarTQZoHh79Hqt1Ax6APXzDEEzdNYG5BHH/YcoYnt9aR6jAQCIYU2RyAL8/O4Jtzc6ls6uemZ/ajVklGWa8fGZ5vxJi0bPrWTAJeD0+8c4K/HeyBcK0Tb1ZzRWE8L+5vJc6i46lbS/n2a1WcCQ/SBWDVV6aQl2BhbVU7/7FcSnQ2g5rn7iynINHCbzbU8mwYeaZVCfx4UQFXFMVx9R/3KIoRWrXAf1yWS7xVx38sH1bONenUfGtuDltOdCqbBJB4NddNSubFvU1RvCujVkWCVc/ZbjcqQSQkjn6mpmbaqe/xRG2sHEYN98zM5FTnIK8faYtCVZq1EvAjKIJVB/4gUXMc2Xys1xNg0/Fz39/yLCg/wcx/XxJDT2sjFRUVWK3Wc77n/eL48eMsWLCAu+++m1/84hcXZHIBqK2tJS8vj8rKSkpKSj7t0/mnxwWZYBobG3nttddYsWIFO3bsYPLkySxZsoQlS5aQmZn5gTyZkydP0tzczMSJE4mJifnQn+v3+xXoc1dXF0ajUUk2ZrOZ4+1DrD/WzoaaDkV+HqSFZEKKlbput6IQICISiSFQqyS9MH8gyOqqsecUIC3gF4+L4dUIhWQ5jFoVbr+E8JqUZuNE2xCDESgsg0ZFaZpNab3IiLCRx1gyMZGTHS72jyBtRn6fikQ1JVmJPL+nWeKvaGEEgA6jVkVBooXDTf2IIjxwcRbZ8SZ+vubkqHOXoyzNRn6ShVf3SQKNT91ayqQ0Gwv+bzedg1LSauv3Ru2a0xx6ipJsbKjpQK9R8bNpKpJjHXxrUz+dgz5mZDupahlQiKMqAe6ZmcGS0iRu+esB+j0Bfnd9MZfkxfKdFVVRC92ikkS6hnzsOtPD0tIkfrGkiK0nOxXeDsBtU9P40qwMlv5pL71uP1+9KJ1Vh1tp7vcjJ5svldu556Jc+lw+rvnrUdzhn2VpaRIPL8jnrzvq+ePWOgUObNCouHe2hIDzBkIUJloUYEmq3UBTn4cUu568BDPvnowmQd5UkcKpjmjSrU6t4ieL8nl+d0MUoq4w0cK3L8/h0XdOUd0q/7vIJTl2bp+ZzRNb6jjYOHycRKuOaVlO1hxrH7NClX4PA1MyHWyo6Yga4jsMKjKtApWdAUKiMKYkUobTEJaT6aGqZSDqb1JyiaWnteFjJZdTp04prajf/OY3590B+aRDFEWWLFlCT08P27Zt+7RP5xOJCzLByCGKIi0tLaxcuZIVK1awdetWJk6cqCSbyLYXSPDmyspKhoaGmDRp0sfqaQYCATo7O2lvb6ezsxOdTkdiYiIJCQnYbDbOdLnYUN3BumMdoxBnhYkW0pwGNh3vJCQyZosgzaHnpvIUVlW2cWrEXEaudARBsmbuHPRzsCE6GSRa9fS5/XjCzHSDRqX03eVjTMuyo9WoFbTOWOcxKc3GvMI4/rqzYRQEW444s5Yvzspg24kudtb1Sl4hKhF3MDrRZzj1CIKKs91uYkxanr6tlNVV7Tz9Xv2YxzVqVSyemERrv4d3T3aT5jDwxv1T2X2mh/tfrgSitdAArFq4drwNlcnGszsbSXMYeOuBabT3e1n0x91Ri6L8fTNjjLz9wDQCQZEF/7eLlj4vE1OtVDYNKIleAJZ/eQqFSRZe3tfET1efiErQVr2aAW+Q7FgTr98/BY8/xG3PHlDaO/lONbfkBjjVG+LvtWo0YbSfiDRYbx/whXlChaytaleY8yBxTP56eylPv1fP45vPKOf00Lxc7pqezt93S6oGYvg7ffPSHG6fnsaP3qjhrQjOzvVlydxUkcqXXzocleALE83EWXRsPzVcfcnfWf6skmQLjb0eRVoHpMrl3tmZnOqQhFUjVwqLXo3HLxF448w6vIFgFFBGo4IZqTr6XT4On7twUarpnDgTP78snu7ms1RUVGCz2c79pveJuro6FixYwNVXX83jjz9+wSYXgAceeIC3336b7du3k5aW9mmfzicSF3SCiQxRFOns7FSSzaZNmygsLFSSjcFg4Ctf+QoPPfQQl1xyCVqt9oMP+iEjGAzS1dVFe3s7HR0dqNVqpbJxOBwSO75aMp46OmImYzNouKE8md1nupU5xsgQkHzdHSYtyw+2nBOxZtGrKUqycrChL2qHH2vWkhVrUioSudKJjESrnmsmJbK+ulPp148MrQquKbRgsjl4fnfjOXWi5hXGcVlBLL9cV0ufJ4ghjL6KfLlWLSgaXW5/iBvLk7lzejrfXVk9aucqR1majaWTknjmvQbqe9zcWJHCd+eN4+E3qhXF45Fx14x0vjU3h1+uO8nL+5opSbHypZkZ/GX7WQUFpwIWTkgk0arnmR31xFt0rHtwOrXtQ9zzwiFlYUy06rn/4iyeePcMnYM+fjA/j6wYIw+/WaO0QqdkOnj0+mICIZEFT+zC7Q+hVwt4gyJaQUSrUeHyiyzOFsi2iDx/QqDHK12ZDKeB1++filat4msvVyotUYdRw39fVcj4ZAkdFvnbXVWSgCcQYmNNZ9Q8L9kuJa1gSCQvwczJcKKL5KRcOT6eZQdacPvlhV9kYYGTKyem8cSW05yM2NhkxxqZmuVg5QjEZGSkOgzMyHayvrqd/og+mCNs9rbzTC/BkDgmqCPBrGJKrMixnhBnBqI3JrnxJn4+N56uj5lcGhsbufLKK7niiit48sknL+jk8uCDD7Jq1Sq2bt1Kdnb2p306n1h8ZhJMZIiiSE9PD2+88QbLly9n3bp1GAwGJk6cyC9+8QvKy8s/sZsrFArR3d2tzG0EQSA+Pp7ExEScTiedQ3421nSwobqDPXW9o1phs3KclGXYeX5X4ygtMHlxsOjVLCxJYPeZ3ihVWpAe8uYwOizWrMXlDeCOID9q1QLzCuOo63KfE2YsCJLyb3aMib/urB+VjOQYF2/igYuzeHZXQxQaKzIsejXfuSyX1p5+/rRTGh4b1aOrm6xYI8l2AztP96AS4OnbSuka8vPjN2vG/HytWuDbl+VSmmrlrucP4QuKfHNWAja7g8c3nx610+5zBxCB5+6YxJQsJw+/Uc2KQ61K5REZX5mdydfn5vDuyS7u/8cR1CqBeIsuau6QYNWx/usz0KlVfHfFMcX+GKQZR0ZYY6401cb3Lo7nx2/XUtsvfWe9RsULd5WRZhb56/bTmXyoTwAAR5pJREFUPLW/V3lvjlPHvbMz+a81p/AGJA6SLAYpI7smptqYmGrlxT1NwxWWAE/dMpHWAR+/WV+rAAOcJi1/uLGEQEjk668eVe4pnVrg+vIUNCqB53c3Rn1/k1al+NhEItGGr6eW+y7K4GT7EKsOt0ZtNMx6NV65crHo8AdCUVwtjUrgiqI4AiGRDdWd52wFa8MqzUlmgZ/MshF09VJRUYHdbj/HO94/WlpamD9/PhdddBFPPfXUmGoeF0KIosiDDz7IypUr2bJlC3l5eZ/2KX2i8ZlMMJGxatUqbr/9dq666io8Hg/r168nOTmZJUuWsHTpUsrKyj7RZNPb26sQO0VRjJKs6fMEWLn3NKuPNHO8VxjVjzZqVdw6JZXTnS7FcEmOyBZLmsOA06RVdM3kyIk1olGrlDbNWJIcE1KsXDQulpf3NUW10CLDrBG5oyKBk30iG2s6x3yNANwxPY10p5Hfbzo9ikAnx7QsB1+blcwv15/iWIcPdXiYHPnd9BoVlxfGcarDRU3bINmxRn52dSGv7G/mzQgCYWRkOXW8dM8UDjX289WXKxVY97baLrpdwwvc7NwYpmU5+e07krbXi3eXo9eo+NZrR6NAGjNznJzpdNHS7+XuGel8/dJs/m/LGZ7e0aC8Zk5eLItKEvjeympEJBn9F/Y0cTyiJfqdixPJCrWiScjl/hWnle+pUUkCpW9WtjHkDTK/MJYdZ3rCKD2pTVWaZOCJG4v5+4FOntp+Vnnv7dPS+ObcHN443Mp/R6Dm0p0G7pmZyV931lMfIcoJKIlKqxbIcBpHIQ8XFDgpzYzlmR1n6YhAHJal2ShLt48CBESGVLk4wgKpw7+73SBVLrvqpMplLMRkil3PkolJ7DnbO2rmlxVj4D+nmfD2SdWpPPOMj4/Hbrd/6MF8W1sbCxYsYPLkyTz33HMXbHIB+OpXv8pLL73E66+/HsV9sdvtH1pb7bMUn+kEc/jwYWbPns3zzz+vyG0PDg6yevVqli9fzpo1a4iJiWHx4sUsXbqUKVOmfGI3nyiK9PX10dbWRnt7O36/H5PJxNDQEMXFxZgdcWw52cnG6k62nuyMgnXKC0VGjJEZ2Q7WVEUrHauA+DAnAqSE09zriZLjcJo0XFYQz7babtoGvGMi1nRqFbdPTWPQF2DZgeZztsAqMuxcXhjHszsblNaQci7huYbDqOH7V+Sx5WTnKDa3HGqVwHcuzSBJ5+MHG1pwBxhz8FuWbuOygnj+uqOebpefBcUJFCZaeG7nWbrd0X19laDCFwxxx7Q0vn9lHn/f3cAv19WOOV8qSrLw1K2ltPZ7ufHpfYREiZS4u65Hea1WJfC764u5ND+Wry+rYtPxThKtOjoHfVHnOa8onsduKGHIF+DKx3dFJevL8+yc6vZzpsvFZQVxhERRMVYDKTG8+dWpDHqC3PncQWXxN2pgflqIBKuOP1dGV7MxJi2eQAiXL8jEVBtNve6oGZndqOFPX5jIsgMtrDzUolz/zBgjX5uTxcmOIf6yPXr2lWLX0zEozYJizTq6h3xRv1uMSct9szOpah3gzcpotJhVL4mm+oNS5RIMhuiJqCLVKri8IB5B4Jz3AwxzcdKdBn59ZTJdjacpLy/HYrEoisednZ0IgkBcXBzx8fHn1BcE6OzsZOHChYwfP56XXnpJkYa6UONcSfPZZ5/lrrvu+teezL8gPtMJBqChoYH09PQx/+ZyuVi3bh3Lly/n7bffxmw2c/XVV7N06VJmzJjxid2MoVCIo0eP0tHRgU6ni9JHi4+PxxcS2H6qiw3VHWw50RWlxxU5PylNtdLn8VPXNbzzlvWtmvs8tA/4UAmgEqJ73oIA8wriSLIbeGV/8zl3pvEGuGVyCmtP9HF8BBdBXrBVAtxUkUq3y8eG6hEmZ+FnJSRK/jWX58fx3O5GxbFz5LFS7Hp+fUUiyw+1sPLk2NWUQavigYuz0Pn6eGRbFyHgiqI4Tne6okiqFp2a2eNi2HSiC18gxA/n53HRuFh+8PqxKNl3jQrMOskHZWFxAv97XTE7Tnfz5RcPR32XDKeB+h4PGpXA8i9PQasW+MarRzkZNmPTqODmyWmERJGX9jbhMKgYZw2xL2I0ZNCoWHHfFDJjjPz4reMsPzjMzJ+QYuWywnh+v+k0MIwUk39TEbgkGfKcKlbWQadL+s20aoHvXzGO+cUJfOmFw1GePulOI+OTLawLz6fGmn3MzLSSFmvh9cNtijSSgOTJMj7ZwtPv1Y9CGsrnk2zXMy3LOUrpQp657DrTK5mSjQBiACRZ9VxblsT++r5REPbMGCO/uiKJrsbTlJWV4XQ6o/4udwZkPxev10tsbKxiHqbTSYrn3d3dLFq0iJycHF555RXl3z+PCyc+8wnmw4bH42Hjxo2sWLGC119/HY1Gw9VXX80111zD7Nmz/2mgABnJ5nK5KCsrw2AwMDQ0pFQ2Q0NDxMbGKslGVKnZebqHDTUdbDreGeW3YtGp0ahV9Lr9aFQCyXZ9VJsHJHZ6ebqNt4624/aHFOHJyIgxafnijHR2n+19X/2nuQWxxJu1rDrSHpWUVIA2vPN0GLVcXhjHtlNdtPVHVzeR84QvTE5hwBNgTVVHlMChRiUQFEVEERYV2Lg4KcQf9w9wdnDsnV1xspU/3FjClpNd/HT1CQRB+j6Ru3m9RsW9szIYn2zl668eJRASuakihWMtA1FtxaJEM7dPT2fZ/mYONvZTkWGXSJwHhoEVTpOW710xjvwEMzc/cwBfMJppL8cd+fDAosmsPznAj946rvy7zaBhYUmCosZwaX4su+t6FcdTgCuK4vntdcX8Y18Tj6yvVWRUsmKM3FYWy5pj7exv8UVVoWadiiGfBFG/qiSRd2u7ou6VsjQb37sij1f2N7Eywu9FQKoQq1sHcftDUe6rcsSYtNw7O4MjTf2sHQGhtxs1uHzBcNWjJRAUo2YucuWiVgmsqWo/Z+UiI/JS7Qb+d0HyOZPLyBBFkaGhISXZNDc388gjjzBnzhy2b99OcnIyK1asQK/Xv+9xPo9PJ/5tEkxk+P1+Nm/ezPLly1m1ahXBYJBFixaxdOlSLrnkkvO+Wb1eL4cOHUKtVlNaWjpm0pL10drb2xkYGMDpdA5L1mi07D3by/rqdjYd76IzwglQr1ZRlm7jcFM/bn8InVpqFUWGXqPi5ooUOgZ9rK5qH/nRSuQ7BOZNSOUf+9tGzWXk4+rUAleOj+do84CipyVHRoyBpl6JBJkda8Rq0IwCAaQ6DARDIq39Xix6NZcXxrPrTE/UIF0Iv66x14MA3DvJRGv3IOsaBbyh6IQjL7ZfvTiLr87J4j+WVyk795FRkmLluTsmcaJ9iFufPUBIHN2a06oFnrtjEqVpdu7/RyVba7uikrNcDczMcfKXWyay5WQX336tSklEeo2KpaVJbDnRRduAl2lZDrpdfgXNBZAda+Lle8oZ8AS58Zl9UaKkM7MdeAIiBxr6MOvUCAJRcy21SuA3V+VQWd/Jy5V9Cq9Gpxa4oSyJ3AQL/7Pm5Ki2oFwt5sUZsZl0UXMPtQquKU0m3WngyW1nR83r5Pcm2fRUhOWIIqvrGJOGkhQbO073nLNySbTquK4smUON/eyIIH+C1Cp85MoUuhtPMWnSpI/EUZOjs7OTp59+mmXLlnHixAnGjRunIEmnT59+Qc9f/h3j3zLBREYgEGD79u0sW7aMVatWMTQ0xKJFi1iyZAmXXXbZhx68DQ4OcvDgQRwOB8XFxR8KWOB2u5Vk09fXh91uJzExUWoD6A0cauwLc23aoxjoksyLE6tRw/r36XfnJ5i5flIyrxxoHjX0lRdseVjeMehj5+meqGM5jBo8/hCeQAinSUu6w0Bl80DUa9IcBuIsOsXJMCfWREOPO0rY02ZQMysnhh1neuhzB0iy6XEatVSP4A9l21T4QyKNgyImrcCcZJGqbqiPeJkKyEswKy2931wznkAoxP9uPBVV1Vh0akKAyxdkQXECP5ifxx+2nImSsVcLAgWJZo6F9dKevq2Ugw19/HnbWaVtZNGruakihbouN+8c78SqhdQYEzVtw9fTrFPztzsmUZBo4ba/HVSMt+TzSHUaON42hNWgYVaOkw3Vw7L1AvCNudncWJ7Kw29UsylidmM3apiW6WTjcak1adWpGPCNBHFYuGdWJs/tbFA8YORrfnFeLO+e7GbgHPbgMSYtX5qZwd76XraMAJnEWbT0uwP4giIxJi3+YCiqTaZWCVxRGIdKJbC6qv2cnkly5ZJk0/O7RWl0N9Sed3IB6Tm79tpr0el0vPzyy2zfvp3XX3+dNWvWUFVVRXx8/Hkd9/P4ZOLfPsFERjAYZOfOnbz22musXLmSnp4e5s+fz5IlS7jiiivOSdyUNc/S09PJzc09L1kKr9erJJuenh6sVuuwZI3RSFXLAOurO1hT1UZTb7SsSrxFx22TU3nnZFfU4jYyZqfrSE+MG5Nrowu3wCx6NWXpdvad7Y2CD1v0avITLBxq7CMkQpxZR6/LR6Q9jEmrZn5xAjWtAxxrHUQlgEEb3ZIRBLgsP47ceDPP7KgnEBKJt2ijkE0g7XYXFiew7lgbdd1ebFqw6aAxYlSkEuDywnjMejUrD7WiEmBJaRK7TvdEaZ3lxJm4qiSRVw8009rvpTTNhkaA/RGzmhizlvsvysJh1PLQymPKdY30kwf48ZU53DQ1g5+8dVwRuIz8nNOdLjQqgS9flMnaqvao1trs3BgempfLe6e6+XXYwVKOWLOW7iE/InDxuBjOdLmi2qFJNj0Pzx9HS7+PR9bXRiULs0aC/PpCEilWEISo89apBW6bmordqB2zcpGru0SrngkpkoZYZIs0zqJlYoqNrbXdBM6BFku06ri+XPI0eu9UdBs2xW7gfxek0t1YS2lpKbGxsZxPuFwurr/+ekKhEKtXr47SKJPV1j+PCys+TzDniFAoxN69e5Vk09LSwhVXXMGSJUtYsGCBImOxdu1aNBoNhYWF/zQ2rs/ni5KsMZvNSrIxmUyc6nSxvrqD9cfao8hyclxWEEdpmo1ndtRH9elhuA1i1KpYWJLI/vreUW6ZWTFGGns9BEJS3z0kivREQIFVgrQIegIiu85IbRC9WjXKX2dalpMriuL407azdAz6xkSQxVu0LMoQ6fSqeeuUlBRGIuDUgrRATk838p9vnaLXE0KnEvGNaKOVptr49mU5bD/VzVPv1Y8JgDBp1fzP4kKmZjm47ql9tPV7x0SgLSpJ4JFrxvPM9joe3VwX9becWBNnulyIwN0z0qnrcrP5xDC8O8Gq58FLsnEYNXx92dFRu3v5+908OQW7QcsLexsZClcHckU5I9vJT9ecHDUvkc91XLyJi8bFsupQSxSaK8UEU9NNbD7rpc8THBNNGGPScue0NHbW9bBrhJtkit1A15AvPG/T4AuEotxYNSqB+ePjUQkCbx1tOycSUYbMJ1h1PLoonZ6PmVw8Hg833XQTg4ODrFu37rzJmJ/HvzY+TzAfIkKhEIcOHVKSTV1dHXPnzsVsNvPWW2+xfv16ysvLP5HP9vv9UZI1BoNBkayxWq2c7XYrxM6RPBkArUpkcaGd7oB2VBvEqFXhD4rhKkJHkk0/6hi58SbizDoFCTSWC2V2rJHry1JYebjlnHYEBo2Kr12ShVol8LuNp0d548gxrzCOBy/J5sdvHVfabiMjxqTlsWvyOFrfzv9u7zynT8k352Zz8+RUvvHq0VFIJnkXnmjV8/e7ylh7rJ0/bDkTtTMvSDBT3z2EOyCJQCZY9aypalc+T68RuGNaOlOyHHxzWRUuX3DMJHp5YRx3Tkvjj1vPsvPM8FwiwaLjssJ4Vle10ecOjDmAT7Hr+dlVBayuamfFCLmW4mQL9V1DDPhETFppdhYJCNOq4Jp8I2azmZcOd49CE8pts3iLjvxEC7vPdEe9P9muZ0KKjc0nOvEHx2boJ1p13FCewuHGPradip65JNn0/HZROt31JygtLSUuLm6sn+kDw+v1cuutt9LR0cH69es/EBjwScfWrVv5zW9+w/79+xUpq6VLl36q53ShxucJ5iOGKIocPnyYe+65h2PHjpGQkEBhYSFLly5l0aJFxMbGfmLKrcFgkM7OTtra2hR9NBkgYLfbae33Kslm3whSm+yEmRAWM9x8ootB7/DO16ARyIo1K7pqceGWTeSSZDWoWTIhkcNNA2MmM5B22DeUJ5OfYOHR9yFkZjj0LE7zsqdbz55m75ivEQR4eL7EdH5s85lRygfygleSbOYLJTZeOdjOkc4AstYWSIx8mcvz3Xm5NPd5eHV/SxRAoizNxoA3QG2HixiTlrI0G1tODqtWCwIsmZjIwpIkfvr2cRp7PWMutuPiTfz5lom8sq+ZZ3bURyWaSWmSfl2fO0CiVYcvEM0jMevU/OeV4zDr1fzwjeNRiUYtSC1Mtz9EnFlHTpyJPWd7oz57Vq6TmdlOnt7RcE6hUatOYEmRk0Pt3lGyRTlxRpp6vXgDIewGDR5/MIqrpVUJXDUxEVEUeePIuSsXGWYfZ9bx+6sz6Gk4wcSJE897NuL3+7njjjs4e/Ys77zzznlXQP/MWLNmDe+99x7l5eVcd911nyeY94nPE8xHjIGBAW688Uaampp46623cLvdLF++nOXLl3PkyBEuuugilixZwuLFi0lISPhEk013dzdtbW1R+mjx8fH09fVRefIs3cY0dtQPsbuuN2oxjLPoFIRahtOILxCkNQJEoBIkr5hBb5DDYXSYnKAiY1ZODHPyYnj6vXpFWn5k2A0avnlZDocb+0ZJvUfG5QUSL+PFvU2jRDdlCRWTTs2d09PYfaYniusCksDomS4X3kCIongDRsHPofYAoYhkMzXLgd2oZUN1BwISEbO6dTCqqpudG8NN5Yk8+c5xjnWHxmyf2Qwanr29lBPtQ/zPmpNRFZ3TpEEUBXrdfpJsenLiTFFoKpUgKSxfXhjPf799QiHPRv49JEq/0e1TU1lT1a44jYKUiObkxbDrVBfdntCYic6oVXHfRZn0uQO8sKcxqioTALUgEhAFHAYVWbEmDjdFX4OsWCPFSVbW13TgD4qoBSEKag6QbNNzY0UKBxv62DoC+p5g1fG7qzLoqf94ySUQCPDFL36RmpoaNm/efEEO8AVB+DzBvE98nmA+YnR1dfGDH/yAX//611G6SaIocvr0aZYvX86KFSvYt28fM2fOZPHixSxZsoSUlJRPLNmEQiF6enpoa2ujpaWFUChEQkICqampxMTE0O8NsuVEJ+uPtbPjdG/U7j3RqsNu1CpyM06TdtQOOCfWyKKSRFYdaR3Fw5FDp1Fx78wM3P4Af9/dNKoFJs8CcmL0FJk97O/R0joYXZFEJr4riuJp6fOMqpQmplhpHfDSPuDDbtCQGWPkyIjXTM10MD7Zyot7pcXVrhfo80afT36CmQfmZLPvbA9/39M05ndSC/DzxYXEW/X88I2aKIi1WgCbUbpWdqOGK8cnsLG6Iwr2XZBgZnFpEqsOtXKyY2jMZGXRq/nvqwo42jzA33c3RiWLFJsebzBE15Afk06NSaeOgq7LnJjiFCtPbq2L0meLvOZOk5bFExPZVts9is+TZhZpdwv4QmDRSdVHZOWlU6tYWppIICiy6kjrB1YuMWYtjy/Ooqf+OBMmTCAhIWHsN3xABINB7rvvPg4ePMjmzZtJSko6r+N80vF5gnn/+DzBfAIhiiINDQ1Kstm5cydTpkxRJGsyMjL+6ckmGAxy9OhRBgYGGDdunKKRFgwGo/TRPAGRrbVdrKlqZ3ttdxSL26xTM68onkMNfdSN0LqSQyXA9WUpJNv1PPVe/aiZgRxJNj23TE5hfXUnR0eoJ1v1KgbCzpnl6XYQQxxoHOkNYiIQgtOdLtQqgayY0fpaRYlm5uTHsexAM11D/jG12GLNWr41N5cBj49fbzh9Tkj3bVNTuWycg5+8URUFiwapCuvzBNCqBb4wOZUD9b1RqtlmnYSeO9E2SGXzgOQHJEZ72GtUAt+8LIdUu4Gfrj4xKonLsy2LXs20LCc7TndHofiyYoxcXhjHqoNNdLpDY5vX6dTcOyudpl4PKw+1Rn2+XiMAAt4w5DzJqqO6LbpNlmYWSbcI7OuQUGljJcQUu54by1PYV98XZTkA0gbh0asy6W04TklJCYmJiee42u8fwWCQBx98kPfee48tW7a8r2Hgpx2fJ5j3j88TzCccoijS3Nys2Axs27aNiRMnsnTpUpYsWXLesObI8Pv9HDp0CFEUmTRpkiKZIYoi/f39iopApGRNXFwcAVFgx+keNoTtoUcO72flOKnIcPDcroYo9nZk2I0avjwrkwMNfWw63jkK/RUSJcHO3BgdFsHLsR5VVHXjNGqIs+oVgmJ2rJGzXe6o2U+STc+C4gS2nOjiTJdrzLaQXqPivtkZJNr0/HT1yXPK41Rk2PnGJVn8cctpdtVHJzWDetiN8aaKZDoGfKNESKdm2vGHRA429KMSwGbQ0uuO9uG5emIiSyYm8Yu1J0clRcVwTKvizulp7KvrY3+E149agKnZTuq73TT1etCqBUKh6GSlVgl8oSKFFIeBJ7eeZcA7NlLQYdRweWE8W092RbUwNSooTbNzrGXgnOx+nQpmJYKg07Ol3vuBlYvDqOHxJdn0fczkEgqF+OY3v8mmTZvYvHkzmZmZ53Wcf1V8nmDePz5PMP/CEEWR9vZ2Vq1axYoVK9i8ebMCEFiyZAmFhYUfOdl4PB4OHjyo2BWci8ksiiKDg4NKsnG73aMka/ac6WHjcamVNrLdYtSq+NKsDDoHfby6v3kUUkreUefGmZiZ4+Tto+2jVAJS7Tqa+qSFbly8iZZeD0MRu3SDVsW8wnhqO4aobh1EEKTFMhL9LHNdpmTY+fWG01GLe/RnGfjRwjzWHmvn9cNt0V41KkFJcnPzYzEIfjac7MMfAXtOtmpJshs4GK6sMp1GzvZEw7lLUqzcNjWVFYda2XMOy2iNSuAbl2bT7fLz0gjFYqdRg1ajon3Ah04tkOIwjIKMT8m0Mycvlme3n6HLM/ajatap+eKMdGraBtlYE53k7QYNvmBISQJWg2ZUm7Mi3UZOvJnXD0teMGNVR7F6kStyDJzoV7G/KfocY0xafr84i/7GE4wfP/6821mhUIjvfve7vPXWW2zZsoWcnJzzOs6/Mj5PMO8fnyeYTylkT5vXX3+d5cuXs3HjRnJychSbgQ+jBiCrB8TExFBUVPSRiGaDg4MKsXNwcJCYmBgFkabWaDnY0Mf6cGUzUt5FRAIH3FCezFtH26IsemF4KA+Q49Dg8gZojV6TKEuz4guKVIVbTWPBn6dm2rmyOIFn3qunuW9spJlFr+b7V+RyusvN87saR1U28m5+QoqVqVlOVh1upWtoeDdv0AgkGESlLZYTK8ngRCKonAYVN5QnU9fjY3312PI0AnDn9DTyEsw8tvnMKBVq2ZdGqxa4eFws++t7o5K43ajhiqJ49tb1UtftHrM9pVUJ3D0jHZ1GxTM7Rvv4yNBrh1HDtCwn753ujkLxmXVqyjOGSbRjWWqbdWpunpxCr8vPysPnnrnowyZzNoOaPyzNZaDx+MdOLg8//DDLli37TPmkfJ5g3j8+TzAXSPT19fHmm28qBmqpqalKspk0adKo5NHb28vBgwc/lnqAHC6XS0k2/f39OBwORbJGr5e4MRuqO1hf3UFDxC4+kvMxKc1GrFnLuye7orgUVg3E2Y2KnlmSTR+VsEBi7V89IZG1xzrO7bapFrhvdiZ6jYo/bq0btbjKOmLpTgPXlSXzdmW7ooQsR1aMkfoeNyFRqrQGPT7aBqPNsq4cLyGV3g5bEY+10F+c6+DGyWk88W4dNSNM3WS0nVqAG8tTONXlGlXdTEix0u8JcLbbjVoloNeootUOgCvGx1OeZuPJd0/T6x37EbXo1dwyOZWDjX3sPRsNS0+26+lzB3D5gtgMGjQqYZSl9uxxMaQ7DSw70DKKmS9HutPAjeWpbD/VNYpLZNEKfLXIT6oZ4uPjyc3NxWKxfOR7URRFfvrTn/Lcc8+xZcsWCgsLP9L7/9UxODhIbW0tAGVlZfzud7/j0ksvJSYmhoyMjE/57C6s+DzBXIAxMDAQ5WkTFxenKD9PmTKFl156icrKSr72ta+d06rgfMPj8SgGan19fdhsNoXYaTAYONE+xPpqiWtTG7GAC0jJQ5ZoybSpaBsKEeFPhVErGY1Vtw5S2+E6J4hg6cRECpOs/N+7deec/cSYtHx5dgbbT3WHveaHw27QMOgLhsU4TdgNGg6NkNApSjCgD7g51C0thmPNIQoSzXxxRjpvHW1/XxXq26akIqgElh1ojgIZmHUqLAYtbf1e1CqB3DiTgtaTIzfOxPzxCbx1tG2Ue6kcOrXAPTMzGfIFeHlf0zllfuxGDeOTrOw72xs154oz65iSKYlXuv2hMaVerHo1d0xPo63fx4pDLeesXExaFS5/CKtew+PX5DDYUENycjKBQIDOzk60Wq3SdnU4HB9YVYuiyK9+9Sv+9Kc/sXnzZkpKSt739RdCbNmyhUsvvXTUv99555387W9/+9ef0AUcnyeYCzxcLhdr166N8rTp6urioYce4rvf/e4nqh7r9Xrp6Oigra2Nnp4eLBaLkmzMZjNnOl2sr25nQ3XHKHvmHLtAUG3gbLcbQZAkWka2wKZlOZiTH8OzOxpHaX7JYdapuf/iTM50uVh5KLploxYAQaoY0p0GSlKsbDnRFVXdOI0aCpKs7AmbjMWYtKNmQ7FmLbdPTeVkh0upXMaKqyckUpZu48/bzkaJjwKYtQJDfjEsoxPLsZaBqMG6XqPi0vw4TrYPcqrTNWZlJCP0spx6/rj1DCPk2ZT3WPUalkxMZPfZHk62R1d8BYlmGns8CiItGBKjrodakCDgcRY9L+9vOmflkhlj5NpJyWw52cXBhujqyGbQ8NjSHIYaj1NYWEhKSgowzM2SpfVFUVRAJWOZhomiyKOPPsqjjz7KO++8w6RJk8557T+Pz2Z8nmA+IyGKIg8//DCPP/44c+fOZdu2beh0OqWymTVr1j/N02as8Pv9SrKJ1EdLSEjAYrHQ3OdhTWULKw+cpa4vujJJcxqYVxDP2mPttPSfy21T4J5ZGSAKPLOzHt+I2YC8uCbb9MwvTmBDdQeNvdFGbOPizZzuHCIoStWUyxeIsvjVqgUuzbHQ29vPno5zt3GmZTm4blIyf9vVMCpxyi0wGS3WOeBl55ne6O9rVYFKQ2OfpL9mHYE0A2l4f1l+LM/vaaa5b2xukUGj4u6Z6TT2uFl9tD0KWGHQqhAAt19i3qc7jaPg4NlxJsrSbawJewWNRZZ1mrTcMT2Ns12u9yXCmrRqXH4paT2+NBdX03EKCgrOCSGWHV7l1qtsGmYymZSq+IknnuCRRx5h3bp1TJkyZewP/jw+0/F5gvmMxMMPP8zzzz/P2rVrGT9+PD6fL8rTJhQKcdVVVymeNp+ku5/cDpElawwGA06nk46ODsl5MD2XzSe7WVvVxr6zfVGQY3WYyZ4eY+Qv28/No4kza7ljejrbarvZO0IWxW7UMOgNKpWLVa8ZlQgmplpJtOnZWC2hqsbyLsmJM3H39DTWVXeMarNFxtKJiViNGl470BJVDejUAg6TVnEWLUi0cKJtMCoRxBhUXDbOzr4WD2e6xuYWaVQCt09LxaRV88x7Z6PaivLfAyERm0HDpfmx7DjdE1XxaVRQlu7gWMsAQ74gRq0KXyA0yv/mmtIkDFo1/9h37solO9bE4omJY1alNoOG3y/NxdVYQ35+/ocWd5VNw9rb21m2bBk///nPKSgo4MyZM7zwwgtce+21H+o4n8dnLz5PMJ+RqKmpwWKxjPlQBwIBtm3bpnjauN3uKE8bg8HwiZ1XMBiksbGR2tpaRFFEr9crlY3D4aDX7WfT8S42VLfz3qnuUfBmu0HDVy7OpLp1kLcqozWuVADhyiUrxkhBkoV3T3RFIZ8cRg15CWb2ne2TWOtGTZTGF0jyLYvyzFQ19XGwk3PGvMI4pmU5eHpHwygggoxyE4CL82I41TFEY4RtgloFM7JjaO7zcDrcAlMJRAEeBGBOtoWpufE8u6vpnG1Bk07NrVNTqWoeGGXaFWfR4fYFGQoP760GDU290RVQWZqN4hQryw9KCXGspBZn0XLntHSqWwfHdKKU3yPzXEw6NY9fk4u3WTL5Ot/ZnyiKPPbYYzz33HNYrVYOHz5MSUkJ11xzDT/60Y8+MbWLz+PTic8TzP9nEQwG2bFjB6+99hqrVq2it7eXK6+8kqVLl3LFFVdgMpn+qZ/X09PDoUOHyMrKIiMjg+7ubtrb2+no6EAQBCXZOJ1OhnwhtpzsZGN1J1tPdkZBgeUWWGaMkSuK4lld1T5q4cyKkbgooijxXAa9gSgQgFYlML84Hm9APCecGGByhp1rShN5YW9zlMd95HmANHPp9/jZVtsdlfhS7HpUgkBjrwe1APHW0ci4oiQLV45PYPnB5nPK62jVAndOTcHtF3nlQDMjuaH68PDeZtBQlm5nd11PFIjAZtAwJdPO7rpeBr1B5fWRYdSquHVqKoGgyAt7mkbBuOXIiTVx5fg41h7rGOVgatapeeyacXibj3/s5PLCCy/wne98hzfeeINLL72Unp4e3n77bY4ePcqvfvWr8zru53HhxmcmwSxevJhDhw7R3t6O0+nk8ssv55FHHlEGjJ/H6AiFQuzZs0exGWhra2PevHksXbqU+fPnK5425xsdHR1UVlaO2S6R9dHkHrwoiqMka7af6mJDdQdbTkRb81r1aga9QUSkuYpBq+LoCL2x8UkWYsw6Ra5kLJmYnFgT8zLVbD41wInoOXVULJmYSKxZxyv7m6POQy2Aw6Sla8iPSoAJKTaOtw3giXBZsxs0zCuKZ399r9QCi7BdjjzOjRUppDqM/GX72VGq0AIiIgIWnZqlk5LYc7aXEyO4RePiTbT2exn0SnMQlSBEHUcQ4NK8OLLjjLy4t2nUtZAjyarn9mlp7KvvZXOEeyZIrbigKCKKw5WLUavisWvG4W85QW5u7nnDcEVR5NVXX+XBBx9k+fLlXHnlled1nM/jsxWfmQTz6KOPMmPGDJKTk2lqauI73/kOADt27PiUz+yzEaFQiIMHD/Laa6+xYsX/a+/Mo5o80/d/vQkkhCUJSQBBdsEFqQvqINiqONYpWiXqdLFTWlvstPPTmS6nnZ7ptLb9WkenavXM9EBp6Ygt7YxTjRVlRFQQRWrdQJFVEGULWdgJkPX9/YF5awy0CoSwPJ9z+MMEkjtgcr3P89z3dclQU1ODpUuXIi4uDsuXL4dAIHig7YmGhgaUlpbely0ITdOMN5pSqYTBYIBEIoGXlxfEYjGMNIUfbjYjq0yFU2Vqiw9ONy4bAWJnRmDutt834+7siCdmT0BpowZnq/pvJ/7NNA/MCxAiJb/GasVhHjpkUb2BbTebulB1V7YNhd5Zn6YuPWqau8GmAEcHa1FbGCpCVKA79p6vtarTDM+RhRei/FCt1uB4idrijIrD6h3e0xrpXjNPsTOK6tsttrD83HmYFyDA8ZJee5++rHPcuGy8GO2HJo0e/77UYHW4z5iPSpyxYJIImSVKqO6p15nDxm5pCAzycgQHBw/KtkUmk+Hll1/G/v378fjjjw/4cYaSxMRE7NixA3K5HNOnT8eePXvwyCOP2LusMcWoEZh7SU9Ph1QqhVartWn31FiEpmlcv36dEZuKigrExMQwmTYikehnxaampgaVlQNLKDT7o5lnbbRaLSM2EokENMXCxdutyCxWIrtcbdFS7MCisGSyGB1aIxPc1Ve7b2SgALPc9ThS0YUGy4UA88FKUcCamd5o69Eju1xt8RgiZ0c4sllQdPTOr/gKnaxmVIIlzlg2VYKj15Woa+3ptzNufZQ/WBSNfefrrIZDzYOqAicHLAoV49zNZouoAjYFTPPgoLrVAI3O1OfhvQOL6l2BuXKw73xdvx5sE4VOeHrORJypVFsNZbpw2OjWG5mkU/PKZbc0FMbGcgQFBSEwMLDPx70fjh49ihdeeAFpaWlYvXr1gB9nKNm/fz/i4+ORmJiIBQsWIDk5GSkpKSgpKSHDkkPIqBSY5uZm/OEPf0B9fT3y8vLsXc6ohqZplJeXM5k2RUVFWLhwIeLi4rBy5UqLTBuTyYSqqirU19dj9uzZFnEFA31us2WNQqFAd3c3RCIR4yLAYjugoLYNJ8pUOFastLCqB4BQTxc8FeGDw9ca+w1AowA8MccbAidHfHux3moWx2xr48CiMDdAiOKGdnTcZa/i7MjC4skSXKtvR11rT7/zK2tmTcAkDxckn73dr22+G5eNdfN63Zgv1VgOfnq6caDR/vzh/VSxI2b68nGktBVdur7jkN2dHfFStB+q1F19Wr2Yt/CCxM54yMcNp8rVVr8Ts7iYFBUIDAwclLhkZmYiPj4ee/fuxZNPPjngxxlqIiMjERERgaSkJOa2adOmQSqVYtu2bXasbGwxqgTm7bffxqeffoquri7Mnz8fR48eHREJd2MFmqZRVVXFxAxcvnwZ0dHRzDba5s2bwePxsHPnTri6ug7585tbWRUKhZU/mqOjI2NZc7xEaTEDY2bVQ54Qmtpw+IYWbffsTpmn1x1YFJaHe+KGUmN1wB82wRUtXXrI27VwYFFw5rAs5mgAICrIHQuC3bHvx/6HQ83GoIp2LWSFjRbbV+w73WV6U28HXLgPHxdutVi0ULvzHPGrICHOVTX3e3jPZQO/nSEGj+eMfT/W9dt27O/uhFUzJuBEqQrl97gIePE5UHfqYTTRzHM4ObCwe3UoaEUFAgICEBQU1Ofj3g+nTp3CunXrkJycjGeeeWbEdIjpdDo4Ozvju+++s1hRvfrqqygsLERubq4dqxtb2FVgPvjgA3z44Yc/+z0XL17E3LlzAQBqtRrNzc24ffs2PvzwQwgEAhw9enTE/McdS9A0jZqaGhw8eBAHDhxAYWEh+Hw+EhIS8Oyzz9ok0+Zuuru7Gednsz+aWWy4XG6/ljVmHFgUnpk3EapOLbJKVBbbSnwnNtgsFlq69OCwWQiS8KwMO/1FToiZLMHxkl6zz74O7znsn8wnU85Zm0+at8CEPAcsD/dCXqUaNS2WZz9hE1xR09LNHN7TNCxWFCwKeHSaB4JEztj3Y63Vc5gRO7Pxwnw/XGvoxIl7HJXvzqcJFPHg687DD9XNFi7VQO851CfSUEBZAX9//0G5GZ85cwZPPPEE/vGPf2D9+vUj6j3a0NCAiRMn4ty5c4iOjmZu/9vf/oZ9+/ahvLzcjtWNLewqMGq1Gmr1zwwmAAgMDOxzjqOurg5+fn7Iz89HVFSUrUoc92g0GqxZswaNjY146qmncOLECeTl5WHmzJlMzEBwcLBNP0DM/mhKpRKtra3g8/mM2Dg7O6NC3oqvT1/HFaUJ1W2WKw7XOx1pXAcWFgS740ptm8UWlpMDCw+HiFBU3w5Fhw4OrN78lXuHQ+NmTsAkiQs+z7vdrz8a38kB66P8UFjbjrOVljkyfCc2enRG6O6sXCbwuRZRyEBvyFqEvxBHrimg0Rn7nLx3c3LA7x/2h6pDh28vWrcdm7fN/IROiJkiwfESpYWtDQVgspcrqlQaGEw0M4DKdWBhlzQUbNUN+Pr6YtKkSb/0Z+mX/Px8rFmzBjt37sRLL700osQF+Elg7v3s2Lp1K77++muUlZXZsbqxxajaIrub2tpa+Pv7IycnB4sXL7Z3OWOWl19+GTdu3MD3338PPp8PmqahUCiYTJvTp08ze9dxcXGYMmWKTT9QdDodIzbNzc1wdnaGXq+Hq6srZs+eDXm7lnF+LqyzPOeY7OkCdacOzV16cB1YcOGwrXzJIgOFmB/kjq9/rLO6z4wLh41XHglAY1sP9l+RW33Im7fjxC6OmOsvRF5VEzS6nyTLmcPCvAB3XKpphUbbO3nfozdZCBKHTeHJOT5w4zrgyx9qraxzzPgInPC7eT7IqWjCpRrLw3tnh15LfSMN+Aqd4OrERlmj9WrvbnGZOHEiQkJC+nyu++HChQuQSqX46KOPsHHjxhEnLgDZIhtORoXAXLhwARcuXMDDDz8Md3d33Lx5E5s3b4ZcLkdxcTG4XK69SxyzmH3H+lpF0jSN5uZmi0ybkJAQJmYgLCzsgTJqHpSOjg5cvnwZLBYLer0ePB4Pnp6e8PLygqurK5QdOpwsUyGrVInLNW0WB95+7k54ZJIImSUqNHfpLaIHzHAdWEiI9gebBXxxrsaqJdl84C9x4UA6ywu5FU24obI0nwwW81Df0g2tqbdbjN2Hbf7CEDEme7kg7YJ1p5kZsYsjfv9wAErlHUi/x/Hg7loCRDxM93bF6YomdN0d5sYGpnpwUazSMWdR5hXMLulkOKh7xWUw0Q9XrlzBypUr8d577+H1118fkeJiJjIyEnPmzEFiYiJzW1hYGOLi4sgh/xAyKgSmqKgIr776Kq5evQqNRgNvb2889thjePfdd0d0Xvd4wmxuaM60ycrKgq+vLyM2M2fOHFKx0Wg0uHLlCiQSCaZOnQqj0Qi1Wg2lUgm1Wg0Oh8OIDZ/PR0uXHjkVamSWKHH+ZotVBPHqGV7wFzsj+extq64qM+7OjtgQ7Y9LNa04fU+UsguHDYOJhtZggsSFA193J1yts5xfCRTzMNdPgP+VqNClM/Zpm+/KZWPDAn9otEbs/aG2/y0wdyesCPdCVql1hk6AiIeGth7ojTQ8XTkwmkxo6rLe1nNkUdgZFwpuSxW8vb0REhIyYFG4du0aVqxYgbfeegtvv/32iBYX4Kc25c8++wxRUVH4/PPP8cUXX6C4uHjExzSPJkaFwNiDW7duYcuWLcjOzkZjYyN8fHzw7LPP4q9//atNjSTHCh0dHcjIyMDBgweRmZkJiUSCVatWYfXq1Zg7d+6gxKazsxOXL1+Gt7c3QkNDrT7MjEYjmpqaGMsaNpttYVnToTXgdEWvi8CZyiarD3m+kwM2LgrE7aZu7L9iPaRovvqfwOdiXoAQZyqb0HbPuc5MH1cU1rVDa+oVnx690cp8cu0sb4icOfjyh5p+51d8BFysn++Hs1XNVpk0zo5s6IwmGEw0fIVO8HLj4kptm4WoBYh4mOHjhuOlKuiMNLPScWABL00DpvINcHV1RWhoKEQi0YD+LiUlJYiNjcWmTZuwefPmES8uZhITE/Hxxx9DLpcjPDwcu3fvxsKFC+1d1piCCEw/ZGZmYv/+/Vi3bh1CQkJw/fp1vPTSS4iPj8fOnTvtXd6oQqPRIDMzEzKZDEePHgWfz8eqVasglUoxf/78B8q0aWtrQ0FBAfz9/REUFPSLH2Ymk4nxR1MqlaAoCh4eHvDy8oK7uzu6DSacrWzGyVIVcirUVtkpxjsRAdJZE5BdprZq9Q0U8yBv00JrMEHk4ggHFmUxwU8BiA52x9QJroyFS5+Z9y6OeOWRANxQanCgwDrw6+4tsDn+Apy8x/GAy6Yww5ePa/UdTPiYRmuw8Df7SVwo7IgLBa+lCgKBABwOByqVCkaj0cLO537+LuXl5YiNjUVCQgI++uijUSMuhOGBCMwDsGPHDiQlJeHmzZv2LmXU0t3djRMnTkAmkyE9PR1cLhcrV66EVCr9xUwbs7HmQG1LTCYTY1mjUChgMpkYsRGJRDDQQH5VC06UqZBdbvkB7splQ2swQW+k4S3gwofPxZXadqvVQrgXD1nlzdCb+o4IcOWysSHaH106I/7VxxbY3Y8lnTEBx0uVVt1mvkInKDu00BlpeLlxwGJRkLdZtj9HBbkj1MMF+680WKyOesVlMpxbq+Dp6YnJkyeDoqh+HRY8PT0hkUj6/LtUVlYiNjYW69atw8cff2zT8zbC6IQIzAPw7rvvIjMzE5cuXbJ3KWMCnU6H7OxsJtMGAJNps2jRIoutyIaGBpSVPVgOyc9hPjMyz9ro9XoLyxoTKFy81XrHH01lYeHCc2Rh5kQBCuraGLfjLp3laoHDprBmljeEzo74V36NldCYmSh0QkK0H85UNuP0PeaTXAcWjCYahju5N75CHi7csjw/8hFwMctXgFPl6t5ByT5MP81bemwWhY9XhcK17SY8PDz67fgz57coFAqoVCqLoVfz2datW7fw2GOPQSqVYs+ePURcCH1CBOY+qaqqQkREBHbt2oUNGzbYu5wxh8FgwJkzZ5hMm56eHjz++OOIi4uDUqnE1q1bceLEiUHZlvQHTdPo6Ohgrt57enosrt7NljXmeOh750oeCRXD15WN/xYqYaD79kfzdOXg/y0KQkljOw5c6X8LLFDMw68ChThRqkbLXd1mjiwKD03ko1jeuwUm5DmgW2e0iDxwYFGQzvSChyvXqrXZgUVh+6pQ8NurIRaLMXXq1Pvezuru7oZSqcStW7cglUoRGhoKjUaDqKgopKWlEXEh9Mu4E5gHdQ8Aeq+eFy1ahEWLFiElJcXWJY57jEYjzp07hwMHDuCbb75BR0cHYmNj8fTTT+PRRx8d8kybu7n76l2pVEKj0UAsFsPT0xMeHh4WljXHihVouGdrSsBzwEsLAtDSrUfqD7VWDQJmgsQ8SGd641ixEmUKS8uaiUIulB297cQT+FywWZSVL1lkoBBTvFzx38sNjAv0vU/FdaCgNfQe7G9fNRnCjmqIRCJMmzZtwGclly9fxptvvgm5XI7GxkaEhYVh9erV2LBhA+noJFgx7gTmQd0DGhoaEBMTg8jISKSmppKrtWHkiy++wBtvvIEtW7agtrYWhw4dglKpxLJlyyCVSvGb3/xm0Jk2v4TZH02pVKKjowPu7u5MRxqHw8GlSjn+c64cJe2OuN1qPZgZIOLhxSg/nKpQ48wNyy4wniMLOiMNo4lGoIgHb4FTP1tgfJwqb4LWYGLcju/GhcNGQrQ/DCYTvjhXY9EVx6YobF0ZArHmNtzd3QclLgqFArGxsZg3bx5SU1OZTkGZTIbNmzdj5syZA3pcwthl3AnMg1BfX4+YmBjMmTMHaWlpD9TtRBgcxcXFWLBgAY4cOcJkdJhMJly5coWJGaitrcXSpUshlUqxfPly8Pl8m/ujmcWmra0NLi4u0Gg0CA4ORnBwMKrVXThR1uuPViy3dHc2rzBCPV0w20+ArBKlhWUNl927BXatvh06Iw13Z0d0aQ0WW2CObAqrZ06AhysXKfn9tzabRYiigG0rJ0OsuQWhUIiwsLAB/35UKhVWrFiB6dOn45tvvoGDg8OAHocwviAC0w/mbTF/f3989dVXFuIyYcIEO1Y2flCpVPDw8OjzPpPJZJFpc+PGDSxZsgRxcXH3lWkzWBQKBYqKisDj8dDd3Q03NzdmZePi4oL61m6cuGPGWXjPwGWAmIeGlh7oTTR8BL0uFHdvtVEAooLdMcXTFd9eqoe2ny0wsYsjNi0KxO3mHnx9oc5iO45FAR89HgrP7hrw+XxMnz59wL+P5uZmLF++HJMmTcJ///vfEZu/tHXrVmRkZKCwsBAcDgetra32LmncQwSmH1JTU/HCCy/0eR/5lY0saJpGWVkZIzbXr1/HokWLmEwbDw+PIRWbpqYmXL16FVOnToWPjw90Oh1UKhWUSiVjrWN2EXBx6fU/O1mmxvESBS7XtMN41/+fQDEPM3z4yCxVQddPF5jbnel+nZHG53m3+7Xmd+GwodEZQd0RF68hEJfW1lasXLkS3t7ekMlkI3rI+P3334dQKERdXR2+/PJLIjAjACIwIxByJTZwzJk2ZrEpKChgMm1WrVoFb2/vQYmNWq3GtWvXMG3aNHh7e1vdr9frLSxrnJycGLFxc3NDa7ce2eVNyCxW4Hy15XkL14GFJ2Z7w93ZEcl5t/ttbfYRcPHKIwH4oboVmSVKixgBCsD/rQiFt7YGbm5uCA8PH/DrbW9vh1QqhUAgwOHDh/v0oxuJpKam4rXXXiPvmxEAEZgRCLkSGxpomsbt27dx8OBBHDp0COfPn8evfvUrxMXFIS4uDn5+fg/04atSqVBUVISwsLD72iY1+6MpFAqo1Wo4OjoyYiMQCNCpNSL3Rq9lTe4NtZWgeLpx8OriIJQqOvHvi/VWZpxmpwFXDhuddxIuP1wRiom6Wri4uCA8PHzATSmdnZ1Ys2YNOBwOMjIywOPxBvQ49oAIzMiBCMwIhrxRhg6aplFfXw+ZTAaZTIZz585h1qxZTMzAL9nOKJVKFBUVITw8HF5eXg/8/Eaj0cKy5m5/NKFQCK2RRl5lM7JKVcgpV1k4IZvPX/zdeVgb4Y2TpSqriGgKwPuxIfAz1MHZ2RkPPfTQgMWlq6sLv/3tb0HTNDIyMmySXmpLyPtm5EAEZgRD3ii2wZxpc+jQISbTZvr06Yzzs9k+xYxcLkdJSQkeeugheHp6Dvr5TSYTWlpamEl5mqYZsRGJRNCbaJy/2YKsO5Y1dxtpunDY0BtN0Blp5swF6BWXAGM9eDzeoMSlp6cHTz31FOMfx+fzB/16B8NA5tbI+2bkQARmBEPeKLaHpmk0NTUxmTanTp1CaGgo4/ycl5eH1NRUHD58eEjEpa/nb21tZQY77zWcNIHCxdutOFmmwskyNdSdP7kImBMv33ssBEGmejg5OWHGjBkDFhetVovf/e53UKvVyMrKglAoHKJXOXAGknpL3jcjB9LMPkwM5EqMYHsoioJEIkFCQgJefPFFtLW1IT09HQcPHsSuXbsAAOvWrUNDQ0OvbcwQD9pSFAV3d3e4u7tjypQpaG9vh0KhQEVFBXQ6HSQSCYI9PfHOskl4N3YyCmvbcKJUheOlSmxYEAAWaASZGsDhcgclLjqdDs8//zzkcjlOnTo1IsQFACQSCSQSib3LIAwQIjDDxKZNm/D000//7PfYwmeLcP9QFAWhUIjnnnsOBoMB2dnZ+NOf/oTy8nIsW7YMnp6ezMpmzpw5NhEbgUAAgUCA0NBQdHZ2QqFQ4ObNmyguLoZYLMYET0+8sSQQf14WAoPBgIKCAjhyOIMKdNPr9diwYQOqq6uRnZ0NkUg0pK9ruKipqUFzczNqampgNBpRWFgIAAgJCRl150hjBbJFNoIhS337cPbsWSxfvhxHjhzB4sWLAfRaxhw7dgwymQwZGRkQCARMpk1kZKTNXR46OzuZBoHOzs7eLJvubjg5OWH27NkDfn6DwYCXX34ZV69eRU5OzoAaGEYK69evx759+6xuz8nJYf6OhOGFCMwIxHwllp6ejh07duDs2bMAyJXYcGEymVBRUYGpU6f2eX93dzeysrIgk8lw5MgRODk5WWTa2NpGpaOjA4WFhTAYDDAajRAKhUyTwIPMqhiNRmzatAk//PADTp8+DR8fHxtWTRiPEIEZgZArsdGDTqfDyZMnIZPJcPjwYVAUhRUrVmD16tVYuHDhkE++m7fFWCwWZs2aBb1ez8QMtLW1gc/nM7M2Pze7YjKZ8NprryEnJwc5OTnw9/cf0joJBIAIzLgmMTERO3bsgFwux/Tp07Fnzx7GWJLw4Oj1eibT5vDhw9BqtVixYgWkUiliYmIGPQlvNBpRUFAAiqIwa9Ysq20xrVYLlUoFhUKBlpYWuLq6wsvLi/FHM2MymfDnP/8ZGRkZOH36NIKCggZVF4HQH0Rgxin79+9HfHw8EhMTsWDBAiQnJyMlJQUlJSXkanYIMBqNyMvLw4EDB/D999+jvb0dsbGxkEqlWLp06QNn2pjFBcB9nbno9XpGbJqamkBRFI4dO4a1a9fi8OHDkMlkyMnJQWho6IBfI4HwSxCBGadERkYiIiICSUlJzG3Tpk2DVCrFtm3b7FjZ2MNkMuH8+fOM2KhUKotMm186VzN3RJlMJkRERDzwgb7BYEBRURHee+895OfnAwDi4+Px+9//HnPnzrWp6zRhfEPSs8YhOp0Oly9fxrJlyyxuX7ZsGfMBRBg6WCwWoqOj8cknn6CyshLZ2dkIDQ3Fli1bEBgYiKeffhr//ve/0dbWZuXUbTQacfXqVZhMpgF3izk4OGDWrFmIjo6GSCTC9u3b0d3djaVLlyIwMBDFxcVD9VIJBAuIwIxD1Go1jEajVUuql5cXGhsb7VTV+IDFYmHevHnYvn07ysrKkJ+fj5kzZ+KTTz5BYGAgnnjiCXz11Vdobm5GZ2cn4uPjIZfLMXv27AF3p9E0jU8++QRJSUk4duwYXnvtNaSlpUGpVCIpKQnBwcFD/CoJhF6IwIxj7t0aoWmabJcMI+ZOsC1btuD69esoKCjA/Pnz8dlnnyEoKAjR0dEoLi7G5MmTBzznQtM0/vnPf2L37t04fvy4Rawxl8vF8uXL7e6UfOvWLSQkJCAoKAg8Hg+TJk3C+++/D51O98s/TBjREIEZh0gkErDZbKvVilKpHNWDdqMZiqIQFhaGzZs348cff8TChQuh1WohFosxd+5cLF++HMnJyZDL5fcdeEfTNJKTk7F9+3b873//G7E2RGVlZTCZTEhOTkZxcTF2796Nzz77DO+88469SyMMEnLIP06JjIzEnDlzkJiYyNwWFhaGuLg4cshvR4xGI9auXYu6ujqcPHkSAoEAt27dYjJtfvzxR0RGRjKZNr6+vn2uOmmaxt69e/HOO+8gIyNj1LWf79ixA0lJSbh586a9SyEMArKCGae88cYbSElJwb/+9S+Ulpbi9ddfR01NDV555RV7lzauYbPZWLlyJeNmTFEUgoKC8OabbyIvLw/V1dV48sknkZGRgenTpyMmJgZ79uxBdXU1s7KhaRpff/01/vKXvyA9PX3UiQsAtLW1jVpPNMJPkBXMOCYxMREff/wx5HI5wsPDsXv3bixcuNDeZRHuA5qm0djYyGTa5ObmIjw8HHFxceByudi6dStkMplVp+BooKqqChEREdi1axc2bNhg73IIg4EmEIaR3Nxc+vHHH6e9vb1pAPShQ4fsXdKox2Qy0SqVik5JSaGXLFlCA6DT0tLsXRb9/vvv0wB+9uvixYsWP1NfX0+HhITQCQkJdqqaMJSQFQxhWDl27BjOnTuHiIgIrF27FocOHYJUKrV3WWMG+k40tK+vr71LeeCwsIaGBsTExCAyMhKpqalDHodAGH6IwBDsBkVRRGAIAID6+nrExMRgzpw5SEtLs3n8AWF4IIFjBALBrjQ0NGDx4sXw9/fHzp07oVKpmPsmTJhgx8oIg4UIDIFAsCtZWVmorKxEZWWl1dYe2WAZ3ZBNTgKBYFfWr18Pmqb7/CKMbojAEAgEAsEmEIEhEAgEgk0gZzCEYaWzsxOVlZXMv6urq1FYWAiRSESCzgiEMQZpUyYMK6dPn0ZMTIzV7c8//zxSU1OHvyACgWAziMAQxg3btm2DTCZDWVkZeDweoqOj8fe//x1Tpkyxd2kEwpiEnMEQxg25ubnYuHEjzp8/jxMnTsBgMGDZsmXQaDT2Lo1AGJOQFQxh3KJSqeDp6Ync3Fxi8kkg2ACygiGMW9ra2gCA2MIPklWrVsHf3x9OTk7w9vZGfHw8Ghoa7F0WYQRAVjCEcQlN04iLi0NLSwvOnj1r73JGNbt370ZUVBS8vb1RX1+PN998EwCQn59v58oI9oYIDGFcsnHjRmRkZCAvL29EOA+PJdLT0yGVSqHVauHo6Gjvcgh2hMzBEMYdf/zjH5Geno4zZ84QcRlimpub8c033yA6OpqIC4GcwRDGDzRNY9OmTZDJZMjOzkZQUJC9SxozvP3223BxcYFYLEZNTQ0OHz5s75IIIwAiMIRxw8aNG5GWloZvv/0Wbm5uaGxsRGNjI7q7u+1d2ojjgw8+AEVRP/t16dIl5vvfeustFBQUICsrC2w2G8899xwxqySQMxjC+IGiqD5v37t3L9avXz+8xYxwHjSN8m7q6urg5+eH/Px8REVF2apEwiiAnMEQxg3kWur+kUgkkEgkA/pZ8+9Zq9UOZUmEUQjZIiMQhoGkpCTMmDEDfD4ffD4fUVFROHbsmL3LGjQXLlzAp59+isLCQty+fRs5OTl45plnMGnSJLJ6IRCBIRCGA19fX2zfvh2XLl3CpUuXsGTJEsTFxaG4uNjepQ0KHo8HmUyGX//615gyZQpefPFFhIeHIzc3F1wu197lEewMOYMhEOyESCTCjh07kJCQYO9SCASbQM5gCIRhxmg04rvvvoNGoyHbSIQxDREYAmGYKCoqQlRUFHp6euDq6opDhw4hLCzM3mURCDaDbJERCMOETqdDTU0NWltbcfDgQaSkpCA3N5eIDGHMQgSGQLATS5cuxaRJk5CcnGzvUggEm0C6yAgEO0HTNJkVIYxpyBkMgTAMvPPOO4iNjYWfnx86Ojrwn//8B6dPn0ZmZqa9SyMQbAYRGAJhGFAoFIiPj4dcLodAIMCMGTOQmZmJRx991N6lEQg2g5zBEAgEAsEmkDMYAoFAINgEIjAEAoFAsAlEYAgEAoFgE4jAEAgEAsEmEIEhEAgEgk0gAkMgEAgEm0AEhkAgEAg2gQgMgUAgEGwCERgCgUAg2AQiMAQCgUCwCURgCAQCgWAT/j9I3War2nJSuwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(projection='3d')\n",
    "\n",
    "ax.plot_wireframe(xx1,xx2,ff)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "2a76d332-aee9-4e69-b1d7-20b5eac340a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Repo: https://github.com/Visualize-ML\n",
    "# Book 1 Python for Beginners  |  From Basic Arithmetic to Machine Learning\n",
    "# Published and copyrighted by Tsinghua University Press\n",
    "# Beijing, China, 2023"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
